为啥输出值是null?请老师帮忙检查下

为啥输出值是null?请老师帮忙检查下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package com.imooc.servlet.context;
 
import java.io.IOException;
 
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
/**
 * Servlet implementation class ServletContextInitServlet
 */
@WebServlet("/context/initcontext")
public class ServletContextInitServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
        
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ServletContextInitServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
 
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ServletContext context= request.getServletContext();
        context.setAttribute("copyright""©2020 imooc.com All Rights Reserved 京ICP备 12003892号-11");
        context.setAttribute("title""慕课网,程序员的梦工厂");
        response.getWriter().print("int sccuess");
    }
 
}

**************************************************************

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package com.imooc.servlet.context;
 
import java.io.IOException;
 
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
/**
 * Servlet implementation class ServletContextDefualtServlet
 */
@WebServlet("/context/defulat")
public class ServletContextDefualtServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
        
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ServletContextDefualtServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
 
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ServletContext context= (ServletContext)request.getServletContext();
        String copyright= (String) context.getAttribute("copyright");
        String title = (String) context.getAttribute("title");
        response.setContentType("text/html;charset=utf-8");
        response.getWriter().println("<h1>"+copyright+"</h1>"+title);
         
    }
 
}

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

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

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

2回答
好帮手慕阿满 2020-02-18 10:54:25

同学你好,测试同学的代码,结果如下:

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

这里和输出顺序没有关系,按照同学的代码,先输出copyright,再输出title的。

这里应该先访问/context/initcontext,初始化copyright和title,然后再访问/context/defulat,这样才可以正常输出copyright和title,否则没有初始化值,就会输出null。

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

好帮手慕珊 2020-02-17 19:32:11

同学,你好!需要先执行ServletContextInitServlet这个Servlet,然后再执行ServletContextDefualtServlet,才能显示内容,否则没有在context中设置值就会得到null

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

  • 提问者 霸气的少年 #1
    我好像是是把把输出值填反了才输出null的,课程中是先输出title再加copyright的,我是按顺序输出的。为什么按顺序输出就是null值呢?
    2020-02-17 19:59:27
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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