Servlet容器在启动时会加载Web应用,并为 每个Web应用创建 唯一的 ServletContext 对象。
可以把ServletContext看成是一个Web应用的服务器端组件的共享内存。
ServletContext对象只在Web应用被关闭时才被销毁;不同的Web应用 ServletContext各自独立存在。
在ServletContext中可以存放共享数据,它提供了4个读取或设置共享数据的方法:
- 1)setAttribute(String name,Object object);//把一个对象和一个属性名绑定,将这个对象存储在ServletContext中;
- 2)getAttribute(String name);//根据指定的属 性名返回所绑定的对象;
- 3)removeAttribute(String name);//根据给定的属性名从ServletContext中删除相应的操作;
- 4)getAttributeNames();//返回Enumeration对象,它包含了存储在ServletContext对象中的所有属性名
ServletContext VS Session
- ServletContext和Session相同,都是存在服务器端的东西
- ServletContext和Session不同,ServletVontext是所有浏览器共享的, Session是一个浏览器对应一个session
ServletContext 案例:1.公共聊天室缓存 2.聊天室的在线人数
ServletContext 实现转发://和派发器是一样的
|
|
注意:forward与include的区别
- forward方法是把请求的内容转发到另外的一个servlet.include是把另一个servlet处理过后的内容拿过来.
- forward方法调用后在响应中的没有提交的内容被自动消除。将请求转发给其他的Servlet后,由被调用的Servlet负责对请求做出响应,而原先Servlet的执行则终止
- include方法使原先的Servlet和转发到的Servlet都可以输出响应信息,即原先的Servlet还可以继续输出响应信息