如何从java Servlet返回数据到ajax

时间:2013-08-28 04:29:14

标签: java ajax servlets

我的ajax功能如下:

$.ajax({
  type: 'GET',
  url: "/myservlet",
  data: {
  objects: '2',
  dimension: '2',
  },
  success: function( data ) {
  console.log(data);
  alert(data);
  },
  error:function(data,status,er) {
    alert("error: "+data+" status: "+status+" er:"+er);
   }
 });

我有我的servlet来处理发送到/ myservlet的数据。我从ajax教程中读到,它说成功函数中的数据是ajax从服务器端获得的数据。但我不知道如何设置此数据或将此数据从Java servlet中的doGet方法返回到前端。看来doGet是一个void方法,不能返回任何值,不是吗?我是网络开发的新生,提前谢谢!

3 个答案:

答案 0 :(得分:3)

您可以通过写response.getWriter().write("");来获取servlet中的数据。

这是一个简单的servlet示例。

@WebServlet(name = "MyServlet", urlPatterns = {"/myservlet"})
public class MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html;charset=UTF-8");
        response.getWriter().write("Success Data");
    }   
}

答案 1 :(得分:0)

你不需要从doGet方法返回任何东西,事实上你不能,因为它是无效的。

所以你需要做的是从响应中获取PrintWriter对象并向其写入数据,并在成功函数中提供。

答案 2 :(得分:0)

您可能会注意到doGet()方法有两个参数:HttpServletRequest和HttpServletResponse。

您使用HttpServletRequest获取有关请求的信息 - 任何参数,调用客户端IP,URL等。

http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html

使用HttpServletResponse填充响应。 HttpServletResponse有许多方法可以让你设置响应头和数据。

http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletResponse.html