servlet监听器Word格式.docx
- 文档编号:20706624
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:23
- 大小:27.41KB
servlet监听器Word格式.docx
《servlet监听器Word格式.docx》由会员分享,可在线阅读,更多相关《servlet监听器Word格式.docx(23页珍藏版)》请在冰豆网上搜索。
可以通过getServletContext()方法取得一个ServletContext对象的实例,
一个简单的ServletContextListenerDemo:
Java代码
1.package
com.keith.listener;
2.
3.import
javax.servlet.ServletContextEvent;
4.import
javax.servlet.ServletContextListener;
5.
6.public
class
ServletContextListenerDemo
implements
ServletContextListener
{
7.
8.
/**
9.
*
context销毁时触发
10.
*/
11.
public
void
contextDestroyed(ServletContextEvent
event)
12.
System.out.println("
容器销毁时触发--->
"
+event.getServletContext().getContextPath());
13.
}
14.
15.
16.
context加载的时候触发
17.
18.
contextInitialized(ServletContextEvent
19.
容器初始化--->
20.
+
event.getServletContext().getContextPath());
21.
22.
23.}
packagecom.keith.listener;
importjavax.servlet.ServletContextEvent;
importjavax.servlet.ServletContextListener;
publicclassServletContextListenerDemoimplementsServletContextListener{
/**
*context销毁时触发
*/
publicvoidcontextDestroyed(ServletContextEventevent){
System.out.println("
}
*context加载的时候触发
publicvoidcontextInitialized(ServletContextEventevent){
"
+event.getServletContext().getContextPath());
}
在web.xml里这样配置:
Xml代码
1.<
listener>
<
listener-class>
com.keith.listener.ServletContextListenerDemo<
/listener-class>
3.
/listener>
<
在web服务器关闭或者重启的时候会输出:
/jsp(jsp是我的工程名);
信息;
∙ServletContext属性监听:
ServletContextAttributeListener接口
对Servlet上下文属性操作监听,可以使用javax.servlet.ServletContextAttributeListener接口,对此接口定义的方法:
publicvoidattributeAdded(ServletContextAttributeEventscab)
增加属性时触发
publicvoidattributeRemoved(ServletContextAttributeEventscab)
删除属性时触发
3
publicvoidattributeReplaced(ServletContextAttributeEventscab)
替换属性(重复设置)时触发
在上下文属性监听中,一旦触发了SerlvetContextAttributeListener接口中定义的事件后,可以通过ServletContextAttributeEvent进行事件的处理,此事件定义的方法如下:
publicStringgetName()
取得设置的属性名称
publicObjectgetValue()
取得设置的属性内容
对ServletContext属性的监听例子:
ServletContextAttributeListenerDemo:
javax.servlet.ServletContextAttributeEvent;
javax.servlet.ServletContextAttributeListener;
ServletContextAttributeListenerDemo
ServletContextAttributeListener
增加属性时触发
attributeAdded(ServletContextAttributeEvent
---增加属性时--》属性名称:
+event.getName()+"
属性内容:
+event.getValue());
移除属性时触发
attributeRemoved(ServletContextAttributeEvent
---移除属性时--》属性名称:
23.
24.
替换属性时触发
25.
26.
attributeReplaced(ServletContextAttributeEvent
27.
---替换属性时--》属性名称:
28.
29.
30.}
importjavax.servlet.ServletContextAttributeEvent;
importjavax.servlet.ServletContextAttributeListener;
publicclassServletContextAttributeListenerDemoimplements
ServletContextAttributeListener{
*增加属性时触发
publicvoidattributeAdded(ServletContextAttributeEventevent){
属性内容:
*移除属性时触发
publicvoidattributeRemoved(ServletContextAttributeEventevent){
*替换属性时触发
publicvoidattributeReplaced(ServletContextAttributeEventevent){
web.xml:
com.keith.listener.ServletContextAttributeListenerDemo<
在页面我们可以这样测试,观察控制台:
%
this.getServletContext().setAttribute("
time:
"
2011年"
);
%>
4.<
this.getServletContext().removeAttribute("
time"
6.
%
this.getServletContext().setAttribute("
%>
this.getServletContext().removeAttribute("
3,对session监听
在监听器中,针对于session的监听操作主要使用HttpSessionListener,HttpSessionAttributeListener和HttpSessionBindingListener接口:
∙session状态监听:
HttpSessionListener接口:
当需要对创建或销毁session的操作进行监听时,可以试想javax.servlet.http.HttpSessionListener接口,此接口定义的方法如下:
publicvoidsessionCreated(HttpSessionEventse)
session创建时调用
publicvoidsessionDestoryed(HttpSessionEventse)
session销毁时调用
当session创建或销毁后,将产生HttpSessionEvent事件,此事件定义的方法如下:
publicHttpSessiongetSession()
取得当前的session
session状态监听:
javax.servlet.http.HttpSessionEvent;
javax.servlet.http.HttpSessionListener;
HttpSessionListenerDemo
HttpSessionListener
session创建时触发
sessionCreated(HttpSessionEvent
Session创建,SESSION
ID
==
+event.getSession().getId());
session销毁时触发
sessionDestroyed(HttpSessionEvent
session销毁,SESSION
22.}
importjavax.servlet.http.HttpSessionEvent;
importjavax.servlet.http.HttpSessionListener;
publicclassHttpSessionListenerDemoimplementsHttpSessionListener{
*session创建时触发
publicvoidsessionCreated(HttpSessionEventevent){
Session创建,SESSIONID=="
*session销毁时触发
publicvoidsessionDestroyed(HttpSessionEventevent){
session销毁,SESSIONID=="
com.keith.listener.HttpSessionListenerDemo<
3.<
当访问一个动态页面的时候,观察后台!
、
session的销毁操作:
当一个新用户打开一个新的动态页面时,服务器会为新用户分配一个session,并且触发HttpSessionListener接口中的sessionCreated()事件,但是在session有2种销毁方法:
1,调用HttpSession接口中的invalidate()方法,让一个session失效;
2,配置session的时间,在web.xml中这样配置的session的有效时间:
session-config>
session-timeout>
5<
/session-timeout>
/session-config>
session在5分钟后失效;
默认的时间是30分钟;
∙session属性监听:
HttpSessionAttributeListener接口;
在session监听中也可以对session的属性进行监听,这一点与监听servletContext属性的道理一样,要对session的属性操作监听,可以使用javax.servlet.http.HttpSessionAttributeListener接口完成;
此接口的定义方法如下:
publicvoidattributeAdded(HttpSessionBindingEventse)
publicvoidattributeRemoved(HttpSessionBindingEventse)
publicvoidattributeReplaced(HttpSessionBindingEventse)
替换属性时触发
当进行属性操作时,将根据属性的操作触发HttpSessionAttributeListener接口中的方法,每个操作方法都将产生HttpSessionbindingEvent事件,此事件定义的方法如下:
取得session
取得属性名称
取得属性的内容
对session的属性操作监听:
HttpSessionAttributeListenerDemo:
javax.servlet.http.HttpSessionAttributeListener;
javax.servlet.http.HttpSessionBindingEvent;
HttpSessionAttributeListenerDemo
HttpSessionAttributeListener{
属性增加时触发
attributeAdded(HttpSessionBindingEvent
System.out.println(event.getSession().getId()+"
增加了属性---》属性名称:
属性内容:
属性移除时触发
attributeRemoved(HttpSessionBindingEvent
移除了属性---》属性名称:
属性替换时触发
attributeReplaced(HttpSessionBindingEvent
替换了属性---》属性名称:
29.}
packagecom.keith.listen
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- servlet 监听器