Servlet学习笔记(3)——ServletContext
定义
servlet引擎为每个web应用程序都创建一个对应的ServletContext对象,它被包含在ServletConfig对象中,调用ServletConfig.getServletContext方法可以返回ServletContext对象的引用。
注:由于一个web应用程序中的所有Servlet都共享同一个ServletContext对象,所以,ServletContext对象也被称为application对象(web应用程序对象)。
可以获取当前应用的各方面信息
2. 功能
1)获取当前web应用的初始化参数
设置初始化参数:可以被所有的servlet获取,而servlet的初始化参数只用那个servlet可以获取。
ServletContext的初始化参数设置节点在<web-app>节点里面,与<servlet>节点并列,如
<context-param><param-name>driver</param-name><param-value>com.mysql.jdbc.Driver</param-value></context-param><context-param><param-name>jdbcUrl</param-name><param-value>jdbc:mysql:///atguigu</param-value></context-param><!--配置和映射servlet--><servlet><servlet-name>HelloServlet</servlet-name><servlet-class>day_0206.HelloServlet</servlet-class>
2)获取当前web应用的某一个文件在服务器上的绝对路径:getRealPath(String path);
使用getRealPath()方法如
StringrealPath=servletContext.getRealPath("/note.txt");System.out.println(realPath);
效果:输出
E:\JavaWorkSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\day_0206\note.txt
3)获取当前web应用的名称:getContextPath()
StringcontextPath=servletContext.getContextPath();System.out.println(contextPath);
输出
/day_0206
4)获取当前web应用的某一个文件对应的输入流:getResourceAsStream(String path),path的 / 相当于当前应用的根目录,如
try{ClassLoaderclassLoader=getClass().getClassLoader();InputStreamis=classLoader.getResourceAsStream("test.txt");System.out.println("1:"+is);InputStreamis2=servletContext.getResourceAsStream("/WEB-INF/classes/test.txt");//必须用根目录来定位,否则如用“servletContext.getResourceAsStream("test.txt")”则输出nullSystem.out.println("2:"+is2);}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}
输出结果
1: java.io.BufferedInputStream@156d9dd
2: java.io.FileInputStream@12734c2
5)和attribute相关的几个方法
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。