Servlet:ServletContext

一个项目只有一个ServletContext对象!

我们可以在N多个Servlet中来获取这个唯一的对象,使用它可以给多个Servlet传递数据!

这个对象在Tomcat启动时就创建,在Tomcat关闭时才会死去!

 ServletContext对象的作用是在整个Web应用的动态资源之间共享数据!例如在AServlet中向ServletContext对象中保存一个值,然后在BServlet中就可以获取这个值,这就是共享数据了。

ServletConfig#getServletContext()

GenericServlet#getServletContext();

HttpSession#getServletContext()

ServletContextEvent#getServletContext()


使用ServletContext对象来获取Web应用下的资源,例如在hello应用的根目录下创建a.txt文件,现在想在Servlet中获取这个资源,就可以使用ServletContext来获取。

l  获取a.txt的真实路径:String realPath = servletContext.getRealPath(“/a.txt”),realPath的值为a.txt文件的绝对路径:F:\tomcat6\webapps\hello\a.txt;

l  获取b.txt的真实路径:String realPath =servletContext.getRealPath(“/WEB-INF/b.txt”);

可以通过ServletContext获取资源流,即把资源以输入流的方式获取:

l  获取a.txt资源流:InputStream in =servletContext.getResourceAsStream(“/a.txt”);

l  获取b.txt资源流:InputStream in =servletContext.getResourceAsStream(“/WEB-INF/b.txt”);

 

可以使用ServletContext获取指定目录下所有资源路径,例如获取/WEB-INF下所有资源的路径:

       Set set = context.getResourcePaths("/WEB-INF");

       System.out.println(set);

[/WEB-INF/lib/, /WEB-INF/classes/, /WEB-INF/b.txt, /WEB-INF/web.xml]



阅读更多
个人分类: JavaEE
上一篇JavaWeb三大组件之Servlet初次见面及生命周期
下一篇Servlet:response和request
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭