/**
* ContextServlet学习
* 问题:
* 不同用户的数据共享问题
* 解决:
* 使用ContextServlet对象
* 特点:
* 服务器创建
* 用户共享
* 作用域:
* 服务器启动到服务器关闭
* 使用:
* //获取ServletContext对象
//第一种方式
ServletContext sc = this.getServletContext();
//第二种方式
ServletContext sc2 = this.getServletConfig().getServletContext();
//第三种方式
ServletContext sc3 = req.getServletContext();
使用ServletContext完成数据的共享
//数据的存储
sc.setAttribute("ser1", "ServletContext");
//数据的获取
ServletContext sc = this.getServletContext(); //返回的是Object对象
sc.getAttribute("ser1")
注意:
不同的用户可以对ServletContext对象进行存取
获取的数据不存在返回的null
获取web.xml中全局配置
String name1 = sc.getInitParameter("name"); //返回的是String类型的
System.out.println(name1);
* 获取webContent目录下的资源的绝对路径
* String name2 = sc.getRealPath("/src/1.txt");
//动态的获取项目根目录
获取webContent目录下的流
InputStream is = sc.getResourceAsStream("/src1/1.txt");
throws ServletException, IOException {
//获取ServletContext对象
//第一种方式
ServletContext sc = this.getServletContext();
//第二种方式
ServletContext sc2 = this.getServletConfig().getServletContext();
//第三种方式
ServletContext sc3 = req.getServletContext();
System.out.println(sc==sc2);
System.out.println(sc==sc3);
//使用ServletContext对象完成数据的共享
//数据的存储
sc.setAttribute("ser1", "ServletContext");
//获取web.xml中的全局数据
String name1 = sc.getInitParameter("name");
System.out.println(name1);
//获取WebContent资源下的绝对路径
String name2 = sc.getRealPath("/src1/1.txt");
System.out.println(name2);
//获取webContent路径下的流
InputStream is = sc.getResourceAsStream("/src1/1.txt");