2020-10-12 ServletContext

百度:servletContext接口是Servlet中最大的一个接口,呈现了web应用的Servlet视图。ServletContext实例是通过 getServletContext()方法获得的,由于HttpServlet继承GenericServlet的关系,GenericServlet类和HttpServlet类同时具有该方法。

ServletContext对象是在Web应用程序装载时初始化的。正像Servlet具有初始化参数一样,ServletContext也有初始化参数。Servlet上下文初始化参数指定应用程序范围内的信息。 [1] 

web.xml中配置初始化参数:

<context-param>

<param-name>adminEmail</param-name>

<param-value>webmaster</param-value>

</context-param>

<context-param>元素是针对整个应用的,所以并不嵌套在某个<servlet>元素中,该元素是<web-app>元 素的直接子元素。 [1] 

从Servlet中访问初始化参数:

ServletContext application=this.getServletContext();

out.println("send us your")

out.println(application.getInitParameter("email"));

out.println("'>email");

这些都不重要WEB程序装载时初始化。

总之这个ServletContext可以简单的实现不同Servlet之间的一个通讯功能。

首先建立个maven空工程,然后再在这个maven空工程下面用模板建立一个WEBAPP maven模板,在src/main/com.

/里面建立两个Servlet类,一个用来SetServletContext,另一个用来get里面的值。

首先建立个PUT类继承HttpServlet

public class PutServletContext extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        System.out.println("进入PutServletContext DOGET方法");
        String cachename = "ServletContextTest";
        ServletContext s1sc = this.getServletContext();//new一个Context对象
        s1sc.setAttribute("name",cachename);//将值放入公共的ServletContext
        System.out.println("set success");
        // super.doGet(req, resp);
    }

然后建立个GET来取出来Context中的内容

    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("ServletContext DOGET方法");
        javax.servlet.ServletContext  s2sc = this.getServletContext();
        String OutString = (String) s2sc.getAttribute("name");
        resp.setContentType("text/html");
        resp.setCharacterEncoding("utf-8");
        resp.getWriter().print("从HellowServlet取出数据"+ OutString);
        //super.doGet(req, resp);
    }

先不set或者说是put值,直接去看看这个ServletContext中有什么

可以看到是个null,然后调用set的servlet,

这样就把context取出来了,结合前几天研究的Tomcat组件,这个Context应该和Wrapper在同一个容器之中,也就是Context,

也就是这个黄色块儿的位置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值