【问题标题】:how to return data to ajax from java Servlet [duplicate]如何从java Servlet将数据返回到ajax [重复]
【发布时间】:2013-08-31 00:42:21
【问题描述】:

我的 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 方法,不能返回任何值,不是吗?我是网络开发的大一新生,在此先感谢!

【问题讨论】:

    标签: java ajax servlets


    【解决方案1】:

    您可以通过写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");
        }   
    }
    

    【讨论】:

      【解决方案2】:

      您可能会注意到 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

      【讨论】:

        【解决方案3】:

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

        所以您需要做的是从响应中获取PrintWriter 对象并向其写入数据,这将在成功函数中可用。

        【讨论】:

          猜你喜欢
          • 2018-01-04
          • 1970-01-01
          • 1970-01-01
          • 2014-09-25
          • 2017-12-30
          • 2018-01-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多