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

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

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");
	}

}

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

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
您的移动学习伙伴

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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