1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java 事件监听器是组件_JavaWeb的三大组件之事件监听组件(Listener)

java 事件监听器是组件_JavaWeb的三大组件之事件监听组件(Listener)

时间:2019-05-15 02:31:13

相关推荐

java 事件监听器是组件_JavaWeb的三大组件之事件监听组件(Listener)

JavaWeb监听器

三大组件:

Servlet

Listener

Filter

监听器:

它是一个接口,内容由我们来实现;

它需要注册,例如注册在按钮上!

监听器中的方法,会在特殊事件发生时被调用!

JavaWeb中的监听器

一、生命周期监听与属性监听

ServletContext

生命周期监听:ServletContextListener,它有两个方法,一个在创建时调用,一个在销毁时调用;

void contextInitialized(ServletContextEventsce):创建Servletcontext时

void contextDestroyed(ServletContextEventsce):销毁Servletcontext时

属性监听:ServletContextAttributeListener,它有三个方法,一个在添加属性时调用,一个在替换属性时调用,

最后一个是在移除属性时调用。

void attributeAdded(ServletContextAttributeEventevent):添加属性时;

void attributeReplaced(ServletContextAttributeEventevent):替换属性时;

void attributeRemoved(ServletContextAttributeEventevent):移除属性时;

HttpSession

生命周期监听:HttpSessionListener,它有两个方法,一个在创建时调用,一个在销毁时调用;

void sessionCreated(HttpSessionEventse):创建session时

void sessionDestroyed(HttpSessionEventse):销毁session时

属性监听:HttpSessioniAttributeListener,它有三个方法,一个在添加属性时调用,一个在替换属性时调用,

最后一个是在移除属性时调用。

void attributeAdded(HttpSessionBindingEventevent):添加属性时;

void attributeReplaced(HttpSessionBindingEventevent):替换属性时

void attributeRemoved(HttpSessionBindingEventevent):移除属性时

ServletRequest

生命周期监听:ServletRequestListener,它有两个方法,一个在创建时调用,一个在销毁时调用;

void requestInitialized(ServletRequestEventsre):创建request时

void requestDestroyed(ServletRequestEventsre):销毁request时

属性监听:ServletRequestAttributeListener,它有三个方法,一个在添加属性时调用,一个在替换属性时调用,

最后一个是在移除属性时调用。

void attributeAdded(ServletRequestAttributeEventsrae):添加属性时

void attributeReplaced(ServletRequestAttributeEventsrae):替换属性时

void attributeRemoved(ServletRequestAttributeEventsrae):移除属性时javaWeb中完成编写监听器:写一个监听器类:要求必须去实现某个监听器接口;

注册,是在web.xml中配置来完成注册!

包名.类名

事件对象:ServletContextEvent:ServletContext getServletContext()

HttpSessionEvent:HttpSession getSession()

ServletRequest:ServletContext getServletContext();

ServletReques getServletRequest();ServletContextAttributeEvent:ServletContext getServletContext();

String getName():获取属性名

Object getValue():获取属性值

二、感知监听(都与HttpSession相关)

它用来添加到JavaBean上,而不是添加到三大域上!

这两个监听器都不需要在web.xml中注册!

1、JavaBean中继承HttpSessionBindingListener接口:感知Bean对象是否存放到Session(存放触发,删除触发)

2、JavaBean中继承HttpSessionActivationListener,java.io.Serializable接口:Bean对象是否跟随Session钝化(钝化触发,

活化触发)Serializable接口用来序列化

Session的钝化:即会话在一定时间内没有操作,Session信息自动保存至硬盘中以节省内存空间的技术

--------具体操作:Tomcat7/conf/context.xml添加以下代码,就会将session

保存至Tomcat7\work\Catalina\localhost\项目名\mysession中,如果保存属性有Bean对象

,要将Bean对象实现序列化(即继承java.io.Serializable接口)。

总结:看视频说Session钝化后保存至硬盘,Session的活化可在浏览器重新打开(即一个会话关闭后)再次取出对象信息;

但实际经验是Session的生命周期只有一个会话,或许是我Tomcat的问题,在会话关闭后重新打开时虽然有保存Session

信息到磁盘,但此时取不出Session信息。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。