response.getWriter().println(json);这一句为什么不会再输出了?

response.getWriter().println(json);这一句为什么不会再输出了?

package com.imooc.ajax;

import com.alibaba.fastjson.JSON;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

@WebServlet(urlPatterns = "/news_list")
public class NewsListServlet extends HttpServlet {
    public NewsListServlet() {
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        List list = new ArrayList();
        list.add(new News("TIOBE:2018年5月份全球编程语言排行榜", "2018-5-2", "TIOBE", "..."));
        list.add(new News("TIOBE:2018年6月份全球编程语言排行榜", "2018-5-2", "TIOBE", "..."));
        list.add(new News("TIOBE:2018年7月份全球编程语言排行榜", "2018-5-2", "TIOBE", "..."));
        list.add(new News("TIOBE:2018年8月份全球编程语言排行榜", "2018-5-2", "TIOBE", "..."));
        list.add(new News("TIOBE:2018年9月份全球编程语言排行榜", "2018-5-2", "TIOBE", "..."));
        list.add(new News("TIOBE:2018年10月份全球编程语言排行榜", "2018-5-2", "TIOBE", "..."));
        String json = JSON.toJSONString(list);
        System.out.println(json);
        response.setContentType("text/html;charset=utf-8");
        response.getWriter().println(json);
    }
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title></head>
<body>
<div id="container"></div>
<script type="text/javascript">
    var xml = new XMLHttpRequest();
    xml.open("GET", "/ajax/news_list", true);
    xml.send();
    xml.onreadystatechange = function () {
        if (xml.status == 200 && xml.readyState == 4) {
            var xmlText = xml.responseText;
            console.log(xmlText);
            var json = JSON.parse(xmlText);
            console.log(json);
            var html = "";
            for (var i = 0; i < json.length; i++) {
                var news = json[i];
                html = html + "<h1>" + news.title + "</h1>";
                html = html + "<h2>" + news.data + "&nbsp;" + news.source + "</h2>";
                html = html + "<hr/>";
            }
            document.getElementById("container").innerHTML = html;
        }
    };
</script>
</body>
</html>

response.getWriter().println(json);

这一句为什么不会再输出了?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕小班 2019-11-21 18:56:53

同学你好,response.getWriter().println(json);服务器返回给浏览器的内容,ajax请求得到这些数据后,对它进行遍历,通过调用方法,添加html的标签后,写入到页面中:

http://img1.sycdn.imooc.com//climg/5dd66d36098a04f605590298.jpg

也就是说ajax对这个返回的数据进行了处理。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

好帮手慕小班 2019-11-21 15:43:56

同学你好,1、这里是想说response.getWriter().println(json);这一句为什么不会在控制台输出吗。

    2、如果是,response.getWriter.println()表示向浏览器页面中写入内容,ajax发起的请求,需要用这句话来处理返回的数据。

如果同学想表达的不是这个意思,还麻烦同学具体描述一下自己的问题。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 mixiaofan #1
    response.getWriter().println(json);这句话的不是本来应该会在页面输出json的内容吗?为什么ajax处理之后就没有输出了
    2019-11-21 15:51:13
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师