Listener监听器(观察者设计模式)
1.监听域对象产生和销毁
2.监听域对象存值、修改、删除
package listener;
import javax.servlet.ServletRequestAttributeEvent;
import javax.servlet.ServletRequestAttributeListener;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
public class TestRequestListener implements ServletRequestListener, ServletRequestAttributeListener {
@Override
public void requestDestroyed(ServletRequestEvent sre) {
System.out.println("request对象销毁了");
}
@Override
public void requestInitialized(ServletRequestEvent sre) {
System.out.println("request对象创建了");
}
@Override
public void attributeAdded(ServletRequestAttributeEvent srae) {
System.out.println("request对象添加了数据");
}
@Override
public void attributeRemoved(ServletRequestAttributeEvent srae) {
System.out.println("request对象删除了数据");
}
@Override
public void attributeReplaced(ServletRequestAttributeEvent srae) {
System.out.println("request对象修改了数据");
}
}
<listener>
<listener-class>listener.TestRequestListener</listener-class>
</listener>
<listener>
<listener-class>listener.TestSessionListener</listener-class>
</listener>
package listener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class TestSessionListener implements HttpSessionListener, HttpSessionAttributeListener {
@Override
public void sessionCreated(HttpSessionEvent se) {
System.out.println("session对象创建了");
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
System.out.println("session对象销毁了");
}
@Override
public void attributeAdded(HttpSessionBindingEvent se) {
System.out.println("session对象添加了值");
}
@Override
public void attributeRemoved(HttpSessionBindingEvent se) {
System.out.println("session对象删除了值");
}
@Override
public void attributeReplaced(HttpSessionBindingEvent se) {
System.out.println("session对象修改了值");
}
}
其他和request类似,但让sessiom对象销毁的方法是session.invalidate();
setMaxInactiveInterval()方法设置了最大活跃时间,不活跃不等于销毁