ServletContext 整理

已有 54 次阅读2017-5-24 19:50

ServletContext (最大的servlet作用域)

 

多个servlet 通过ServletContext对象实现数据共享。

获取web 应用的初始化参数

利用servletContext 对象读取资源文件

 

应用:得到属于整个应用的公共信息。

           在线人数的统计

 

 

//设置管道流,用于向浏览器发送显示信息

       PrintWriter out= response.getWriter();

       //获得从页面的name信息、并去除两端空格

       String nameString = request.getParameter("name").trim();

      

      

       //获取ServletContext 共享信息、取出ServletContext中的列表

       List<String> nameList= (List<String>) this.getServletContext().getAttribute("nameList");

       //判断是否存在用户,

       if(nameList==null){

           //没有则新建一个列表

           nameList = new ArrayList<String>();

       }

       //用户名为空则不添加到ServletContext

       if(!nameString.isEmpty()){

           //将用户名添加到列表

           nameList.add(nameString);

           //设置ServletContext 共享信息,将List 集合列表添加到ServletContext

        this.getServletContext().setAttribute("nameList",nameList);

       }

      

       //循环显示用户名到浏览器

           for(String name:nameList){

       //在浏览器显示的信息

           out.print(name+"   ");

           }

      

 

 

 

 

WEB 容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,

它代表当前web 应用。

 

ServletConfig 对象中维护了ServletContext 对象的引用,开发人员在编写Servlet时,可以通过ServletConfig.getServletContext方法 获得ServletContext对象

 

由于一个WEB 应用中的所有Servlet 共享同一个ServletContext 对象,因此Servlet对象之间可以通过servletContext对象实现通讯,servletContext 对象通常也被称之为Context域对象

 

 

 

ServletContext :针对整个web应用的信息共享区域,被所有的客户端共享

Web服务器一启动的时候,就会为每个web应用创建一个对应的servletContext对象

 

 

ServletConfig:每一个servlet对应一个servletconfig,当servlet对象被初始化的时候,web服务器会自动诞生一个与之对应的servletConfig

 

 

不管是ServletContext还是ServletConfig,经常用来初始化参数,只是一个是整个servlet应用还是只属于一个servlet

 

 

添加servletconfig

   

@WebServlet(

       urlPatterns = { "/ServletContext" },

       initParams = {

              @WebInitParam(name = "name", value = "test")

       })

 

 

通过Web.Xml 配置servletconfig

 

    <?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xmlns="http://java.sun.com/xml/ns/javaee"

    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">

<!--全局  -->

<context-param>

    <param-name>encoding</param-name>

    <param-value>utf-8</param-value>

</context-param>

 

<servlet>

    <servlet-name>ServletContext</servlet-name>

    <servlet-class>context.ServletContext</servlet-class>

    <!-- 局部 -->

    <init-param>

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

        <param-value>test</param-value>

    </init-param>

</servlet>

<servlet-mapping>

    <servlet-name>ServletContext</servlet-name>

    <url-pattern>ServletContext</url-pattern>

</servlet-mapping>

</web-app>

 

 

 

Servlet测试:

       //取得初始化参数

           //1.得到servletContext 对象

       ServletContext context = request.getServletContext();

           //2.得到初始化参数

       String encoding = context.getInitParameter("encoding");

       System.out.println(encoding);

      

       //得到当前servletconfig 对象

       ServletConfig config = this.getServletConfig();

       //config 对象中得到当前servlet的初始化参数

       String nameString = config.getInitParameter("name");

       System.out.println(nameString);

    }

 


路过

鸡蛋

鲜花

握手

雷人

全部作者的其他最新日志

评论 (0 个评论)

facelist

doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

Copyright;  ©2015-2017  知了堂学习社区  Powered by  知了堂Edu!     ( 蜀ICP备16011312号-1 )