标签:
一个项目中只有一个ServletContext对象,我们可以在多个servlet中获取这个唯一的对象,使用它可以给多个servlet传递数据,我们通常成servletContext为上下文对象.这个对象在tomcat启动时就创建,在tomcat关闭时才被销毁.有时候我们也把这个对象叫做application.
ServletContext对象的作用就是在整个web应用的动态资源之间共享数据,比如在AServlet中向ServletContext中保存一个数据,然后在Bservelt中获取这个数据,这就是共享数据了.
在servlet中获取:
@Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //通过servletconfig获取servletContext ServletContext servletContext1 = this.getServletConfig().getServletContext(); //直接通过当前对象获取servletContext对象,这与上面是同一个对象 ServletContext servletContext2 = this.getServletContext(); }
servlet也可以获取初始化参数,但它是局部的参数;也就是说,一个Servlet只能获取自己的初始化参数,不能获取别人的,即初始化参数只为一个Servlet准备!
例如Aservlet只能获取Aservlet配置下的初始化参数:
<servlet> <servlet-name>AServlet</servlet-name> <servlet-class>com.wang.servlet.AServlet</servlet-class> <init-param> <param-name>name</param-name> <param-value>张三</param-value> </init-param> </servlet>
而servletContext可以配置公共的初始化参数:
<context-param> <param-name>name</param-name> <param-value>李四</param-value> </context-param>
在doPost方法中获取代码为:
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
ServletContext servletContext2 = this.getServletContext();
String name = servletContext1.getInitParameter("name");
}
不只可以获取资源的路径,还可以通过ServletContext获取资源流,即把资源以输入流的方式获取:
重温Servlet学习笔记--servletContext对象
标签:
原文地址:http://www.cnblogs.com/fingerboy/p/5175412.html