ServletContext对象
了解ServletContext对象前先了解一下ServletConfig对象
<!--Servlet外的context-param是Servlet上下文信息--> <context-param> <param-name>name</param-name> <param-value>gacl</param-value> </context-param> <context-param> <param-name>password</param-name> <param-value>123</param-value> </context-param> <servlet> <servlet-name></servlet-name> <servlet-class></servlet-class> <!--Servlet里的init-param是Servlet的配置信息--> <init-param> <param-name>charset</param-name> <param-value>UTF-8</param-value> </init-param> <load-on-startup></load-on-startup> </servlet> <servlet-mapping> <servlet-name></servlet-name> <url-pattern></url-pattern> </servlet-mapping>
1.ServletContext对象是什么
ServletContext指的是Servlet上下文
一个web项目只有一个web.xml文件,web.xml文件在web服务器启动的时候被解析,在解析web.xml文件过程中创建并实例化ServletContext对象。所以一个web项目只有一个ServletContext对象。
一个web.xml文件中可以配置多个Servlet,所以一个web项目可以有多个Servlet对象,这些Servlet对象共享一个ServletContext对象。
ServletContext对象在web服务器关闭的时候被销毁。
2.Servlet、ServletConfig、ServletContext三个对象之间的关系
一个Servlet对象对应一个ServletConfig对象
一个web项目中所有的Servlet对象共享一个ServletContext对象
可以通过ServletConfig对象获取ServletContext对象
3.ServletContext对象中有哪些方法
ServletContext application = config.getServletContext();
1)向Servlet上下文中存储数据:application.setAttribute(String name,Object obj);
2)从Servlet上下文中读取数据:Object obj = application.getAttribute(String name);
3)删除Servlet上下文中的数据:application.removeAttribute(String name);
4)获取Servlet上下文参数所有的name:Enumeration<String> names = application.getInitParameterNames();
5)通过Servlet上下文参数的name获取value:String value = application.getInitParameter(String name);
6)通过ServletContext获取文件的绝对路径:String realPath = application.getRealPath(“/index.html”); 注意:必须保证webapp的根下有index.html