servlet返回数据给ajax的时候为什么用的是out.println(数据)?
             public void doPost(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException, IOException {  

        response.setContentType("text/html");  
        PrintWriter out = response.getWriter();  
        String userName = request.getParameter("userName");  
        String responseText = "UserName"+userName;  
        out.println(responseText);  
        out.close();  
    }  

上面是一个servlet的dopost方法,ajax send来一个名为username的参数。
而我想问的是,为什么servlet返回给ajax参数的时候使用的是
PrintWriter out = response.getWriter();

out.println(数据) ;

out不是用来输出网页的吗,为什么ajax能捕捉到呢?如果可以通过out向ajax传输参数,那么out还可以用来传输其他东西吗?还有没有其他的方法可以向ajax传递参数呢?

6个回答

题主这个问题需要看看http协议了,,,out.println(数据),,输出的数据会放到http协议的body里面

图片说明

图片说明

m0_37676512
龙猫12138 屌屌屌!还能这样看!牛逼,我懂了
接近 2 年之前 回复
Small_Mouse0
小鼠标丶 【补充】ajax能捕捉到的只是网页的内容,,也就是响应体,,,(上面图片输入法错了“相应”应该是”响应“)
接近 2 年之前 回复
 PrintWriter out = response.getWriter();

这个out只是一个起的名字,和网页中的out不是一个概念

我认为:ajax 本身就是用来抓取网页的源代码。

 PrintWriter out = response.getWriter();
out.println(数据) ;

刚好把 数据打包成了我们所需要的内容 (默认在body内),
再通过ajax获取 页面源码的方式获取

m0_37676512
龙猫12138 谢谢你的热心解答!
接近 2 年之前 回复

你可以以json的形式返回,取决于你返回的参数
out输出网页,ajax是什么呢,不是网页的工具吗,或者说脚本

PrintWriter out = response.getWriter();

String userName = request.getParameter("userName");

String responseText = "UserName"+userName;

out.println(responseText);

out是你自己起的名字,天啦噜,这块的out是PrintWriter类型的对象!!!

response.setContentType(type + ";charset=UTF-8");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
PrintWriter writer = response.getWriter();
writer.write(content);
writer.flush();

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!