发表于: 2017-07-02 22:15:24

1 1160


今天完成的事情:监听器listener

Listener的定义与作用

监听器Listener就是在application,session,request三个对象创建、销毁或者往其中添加修改删除属性时自动执行代码的功能组件。

Listener是Servlet的监听器,可以监听客户端的请求和服务端的操作等。


Listener的分类与使用

主要有以下三类:

1、ServletContext监听

ServletContextListener:用于对Servlet整个上下文进行监听(创建、销毁)。

public void contextInitialized(ServletContextEvent sce);//上下文初始化

public void contextDestroyed(ServletContextEvent sce);//上下文销毁

public ServletContext getServletContext();


//ServletContextEvent事件:取得一个ServletContext(application)对象

ServletContextAttributeListener:对Servlet上下文属性的监听(增删改属性)。

public void attributeAdded(ServletContextAttributeEvent scab);//增加属性

public void attributeRemoved(ServletContextAttributeEvent scab);//属性删除

public void attributeRepalced(ServletContextAttributeEvent scab);//属性替换(第二次设置同一属性)


//ServletContextAttributeEvent事件:能取得设置属性的名称与内容

public String getName();//得到属性名称

public Object getValue();//取得属性的值


2、Session监听

Session属于http协议下的内容,接口位于javax.servlet.http.*包下。

HttpSessionListener接口:对Session的整体状态的监听。

public void sessionCreated(HttpSessionEvent se);//session创建

public void sessionDestroyed(HttpSessionEvent se);//session销毁


//HttpSessionEvent事件:

public HttpSession getSession();//取得当前操作的session

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


session的销毁有两种情况:

1 session超时,web.xml配置:

<session-config>

    <session-timeout>120</session-timeout><!--session120分钟后超时销毁-->

</session-config>

  

2 手工使session失效

public void invalidate();//使session失效方法。session.invalidate();


3、Request监听

ServletRequestListener:用于对Request请求进行监听(创建、销毁)。

public void requestInitialized(ServletRequestEvent sre);//request初始化

public void requestDestroyed(ServletRequestEvent sre);//request销毁


//ServletRequestEvent事件:

public ServletRequest getServletRequest();//取得一个ServletRequest对象

public ServletContext getServletContext();//取得一个ServletContext(application)对象

ServletRequestAttributeListener:对Request属性的监听(增删改属性)。

public void attributeAdded(ServletRequestAttributeEvent srae);//增加属性

public void attributeRemoved(ServletRequestAttributeEvent srae);//属性删除

public void attributeReplaced(ServletRequestAttributeEvent srae);//属性替换(第二次设置同一属性)


//ServletRequestAttributeEvent事件:能取得设置属性的名称与内容

public String getName();//得到属性名称

public Object getValue();//取得属性的值


4、在web.xml中配置

Listener配置信息必须在Filter和Servlet配置之前,Listener的初始化(ServletContentListener初始化)比Servlet和Filter都优先,而销毁比Servlet和Filter都慢。

<listener>

    <listener-class>com.listener.class</listener-class>

</listener>

明天计划的事情:继续任务五

遇到的问题:一般的监听器是不是都是用的log4j

收获:学习了监听器


返回列表 返回列表
评论

    分享到