背景:
Request 解决了一次请求内的数据共享问题,session 解决了用户不同请求的数据共享问题,那么不同的用户的数据共享该怎么办呢
ServletContext 对象由服务器进行创建,一个项目只有一个对象。不管在项目的任意位置进行获取得到的都是同一个对象,那么不同用户发起的请求获取到的也就是同一个对象了,该对象由用户共同拥有。
特点:
服务器进行创建+用户共享;
一个项目只有一个生命周期:
服务器启动到服务器关闭
作用域:项目内
使用ServletContext:
1.获取ServletContext
this.getServletContext();
2.你可以把它想象成一张表,这个和Session非常相似:每一行就是一个属性,如下:
添加属性:setAttribute(String name, Object obj);
得到值:getAttribute(String name),这个方法返回Object
删除属性:removeAttribute(String name)
3.实现Servlet的请求转发
方法和通过request对象转发是一样的
request.getRequestDispatcher("/url").forward(request, response);
this.getServletContext().getRequestDispatcher("/url").forward(request, response);