当前位置:首页 > JavaServer Page > 正文内容

ServletContext、Session Listener (监听器)

canca18年前 (2008-01-29)JavaServer Page415
ServletContext、Session Listener (监听器)
[测试环境:XP_sp2(zh_CN), jdk1.5.0_10(sun), Tomcat 5.0.28]
Servlet程序分为三类:
· 标准Servlet
· 过滤器
· 监听器

主要有以下三类:
· ServletContext:Servlet上下文(WEB容器的监听)
· Session:对Session监听(用户会话监听)
· Request监听
一、对ServletContext监听
在WEB端实现监听 (一系列的监听接口)
1、ServletContextListener:对整个Servlet上下文监听(启动、销毁)
public void contextInitialized(ServletContextEvent sce):上下文初始化
public void contextDestroyed(ServletContextEvent sce):上下文销毁
   ServletContextEvent事件:取得一个ServletContext(application)对象
    public ServletContext getServletContext()
2、ServletContextAttributeListener:对Servlet上下文属性的监听
public void attributeAdded(ServletContextAttributeEvent scab):增加属性(setAttribute)
public void attributeRemoved(ServletContextAttributeEvent scab):属性删除(removeAttribute)
public void attributeReplaced(ServletContextAttributeEvent scab):属性替换(第二次设置同一个属性)
   ServletContextAttributeEvent事件:能取得设置属性的名称与内容
    public String getName():得到属性名称
    public Object getValue():得到属性的值
public class XXX implements ServletContextListener,ServletContextAttributeListener {...}
当前虚拟目录的绝对路径: application.getRealPath("/") ;
上下文监听主要是针对容器的:初始化、销毁、属性操作
二、对Session监听
对session的创建、销毁、属性操作
Session属于http协议下的内容:javax.servlet.http.HttpSessionXxxx
1、HttpSessionListener:对session的整体状况的监听
public void sessionCreated(HttpSessionEvent se):session创建
public void sessionDestroyed(HttpSessionEvent se): session销毁
HttpSessionEvent 事件:
   public HttpSession getSession();取得当前session
2、HttpSessionAttributeListener: 对session属性监听
public void attributeAdded(HttpSessionBindingEvent se): 增加属性
public void attributeRemoved(HttpSessionBindingEvent se): 属性删除
public void attributeReplaced(HttpSessionBindingEvent se): 属性替换
HttpSessionBindingEvent 事件:
   public String getName(); 取得属性名称
   public Object getValue();取得属性的值
   public HttpSession getSession();取得当前session
public class XXX implements HttpSessionListener,HttpSessionAttributeListener {...}

//-------------------------------------------------------------------
web.xml 增加-->
<!-- 监听器 -->
<listener>
<listener-class>ServletContextListenerDemo</listener-class>
</listener>
<!-- session超时配置 -->
<session-config>
<!-- session 超时分钟值(不是很准确,有误差,TOMCAT v5.0.28 中有延后) -->
<session-timeout>1</session-timeout>
</session-config>
手动使用session失效:
session.invalidate();
//-------------------------------------------------------------------
session.setAttribute(key, value)中的属性在session.invalidate()和session超时失效时都会由容器自己删除(监听器方法可以监听到)
application.setAttribute(key, value)中的属性在关闭容器时未见容器自动删除(监听器方法不能监听到)

扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/484.html

标签: JavaServer Page
分享给朋友:

“ServletContext、Session Listener (监听器)” 的相关文章

JBoss,Tomcat 中文URL支持方法

JBOSS 找到jboss4的deploy\jbossweb-tomcat50.sar\server.xml,编辑该文件,在下面的XML节点中增加红色的字<Connector port="8080" address="${jboss.bind.address}"  &nbs...

在web.xml不认<taglib>解决办法

在web.xml不认<taglib>解决办法: 如果是头是这样的<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application&n...

<html:select>设置默认值

在ActionFrom的reset方法里赋初值就可以,这样不管是调用的action或jsp都会先调用reset方法。...

struts,ajax乱码解决方案

乱码问题好像跟我们中国程序员特别有缘,一直困扰着我们,从开始的JSP乱码问题,STRUTS乱码问题,到现在的AJAX乱码问题,无一不是搞得许多程序员焦头烂额的,整天骂XXX产品对中文支持不了,UTF-8无法使用中文啊什么的,其实这里面被骂的产品中其实99%以上是对中文支持非常好的,而出现乱码的原...

JSP动态include与静态include的区别

动态INCLUDE   jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。静态INCLUDE   用include伪码实现,定不会检...

浏览网页时的错误代号

① 客户方错误    100  继续    101  交换协议  ② 成功    200  OK    201  已创建 &nbs...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。