您的位置:首页 > 其它

Servlet:ServletContext

2015-11-19 12:37 405 查看
一个项目只有一个ServletContext对象!

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

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

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

l ServletConfig#getServletContext();

l GenericServlet#getServletContext();

l HttpSession#getServletContext()

l 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]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: