ServletContext

Posted zhangxiong-tianxiadiyi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ServletContext相关的知识,希望对你有一定的参考价值。

背景:

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);  

以上是关于ServletContext的主要内容,如果未能解决你的问题,请参考以下文章

ServletContext介绍和用法总结

servlet开发之ServletContext

如果遇到java.lang.NoClassDefFoundError: javax/servlet/ServletContext问题具体代码和解决方案如下面所示

为啥 servletContext.getRealPath 在 tomcat 8 上返回 null?

JavaWeb-使用ServletContext下载文件

JavaEE_ServletContext的简单应用