Servlet中的ServletContext和ServletConfig详解
来源:互联网 发布:未来国际局势知乎 编辑:程序博客网 时间:2024/06/18 06:49
ServletContext和ServletConfig是Servlet中比较重要的两个概念,在Java Web开发的很多时候都会碰到这两个对象,下面就详细的介绍下他们。
1.ServletContext
ServletContext,即Servlet上下文是servlet与servlet容器之间的直接通信的接口。Servlet容器在启动一个Webapp时,会为它创建一个ServletContext对象。每个webapp都有唯一的ServletContext对象。同一个webapp的所有servlet对象共享一个ServeltContext,servlet对象可以通过ServletContext来访问容器中的各种资源。下面通过一些具体的servlet方法来了解servletContext的作用:
1)在webapp范围内进行数据的共享
主要是通过对Attribute的操作来实现数据的存储、传递等
2)访问webapp的资源
3)获取Servelt容器相关信息
4)访问Servlet容器相关的信息
5)访问服务器端的文件系统资源
获取ServeltContext对象的几种方法:
javax.servlet.http.HttpSession.getServletContext()
javax.servlet.jsp.PageContext.getServletContext()
javax.servlet.ServletConfig.getServletContext()
javax.servlet.ServletRequest.getServletContext()
2.ServeltConfig详解
Servlet容器初始化一个Servlet类型的对象时,会为这个Servlet对象创建一个ServletConfig对象。在ServletConfig对象中包含了Servlet的初始化参数信息。此外,ServletConfig对象还与ServletContext对象关联。Servlet容器在调用Servlet对象的init(ServletConfig config)方法时,会把ServletConfig类型的对象当做参数传递给servlet对象。Init(ServletConfig config)方法会使得当前servlet对象与ServletConfig类型的对象建立关联关系。在Servlet内部提供了 getServletConfig()方法来获取关联的ServletConfig对象,下面看下这个对象具体的方法:
下面的web.xml配置中展示了ServletContext初始化参数,以及Servlet初始化参数,并且展示了如何在代码中引用它们:
<!--ServletContext的初始化参数,可以通过servletContext.getInitParameter()方法获取--> <context-param> <param-name>context-param</param-name> <param-value>context-param</param-value> </context-param> <servlet> <servlet-name>MyFirstServlet</servlet-name> <servlet-class>com.meituan.lkl.MyFirstServlet</servlet-class> <!--Servlet初始化参数,可以通过servletConfig.getInitParameter()方法获取--> <init-param> <param-name>servlet-param</param-name> <param-value>servlet-value</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>MyFirstServlet</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>
//重写了HttpServlet的doGet()方法 @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { ServletContext servletContext = req.getServletContext(); System.out.println(servletContext.getInitParameter("context-param")); //HttpServlet类继承了GenericServlet类,而GenericServlet类实现了ServletConfig接口, // 因此在HttpServlet类和GenericServlet类及子类中都可以直接调用ServletConfig接口中的getServletConfig方法 ServletConfig config =getServletConfig(); System.out.println(config.getInitParameter("servlet-param")); }
- Servlet中的ServletContext和ServletConfig详解
- 【Servlet】ServletConfig和ServletContext
- Servlet、ServletConfig和ServletContext
- ServletConfig和ServletContext详解
- servlet-01 servletConfig和servletContext
- Servlet之ServletConfig和ServletContext
- Servlet学习笔记(五):ServletConfig和ServletContext详解
- servlet中的知识点1:servletConfig,ServletContext
- Servlet技术中的对象-ServletConfig与ServletContext
- Servlet的应用--- ServletConfig和ServletContext
- Servlet的应用--- ServletConfig和ServletContext
- Servlet的应用---ServletConfig和ServletContext
- Servlet的应用---ServletConfig和ServletContext
- Servlet的应用--- ServletConfig和ServletContext
- Servlet的应用--- ServletConfig和ServletContext
- Servlet之ServletConfig和ServletContext的探索
- Servlet注意+ServletConfig+ServletContext
- Servlet、servletConfig、ServletContext简介
- React中的props和state
- 前序——中序建树
- jQuery 显示和隐藏-冒泡传播点击
- 私有云落地解决方案之openstack高可用(pike版本)-keystone
- EasyDSS流媒体解决方案之多方式虚拟直播
- Servlet中的ServletContext和ServletConfig详解
- EventBus使用详解
- Hbase启动报错没有那个文件
- 几种锁机制(反正我一直都是有点模糊)
- JavaWeb学习笔记-XML-7
- 如何在win7中配置eclipse
- 机器学习-python使用Apriori算法进行关联性分析
- Palindromes—UVa401
- PAT乙级真题 1040. 有几个PAT(25)