首页 > 编程知识 正文

java监听器模式,java actionlistener

时间:2023-05-06 17:23:56 阅读:174854 作者:4341

监听器(监听器)的作用和内部机制的作用)监听某个事件的发生、状态的变化

内部机制:接口回调

8个web侦听器实现侦听:

在类实现侦听器接口web.xml文件中设置/注册侦听器listener listener-class URL/listener-class/listener,然后在注释@WebListener中键入侦听器

ServletContext域对象的生命周期:

创建:在服务器启动时创建

放弃:关闭服务器或从服务器中删除项目。 @ weblistenerpublicclassmyservletcontextlistenerimplementsservletcontextlistener { @ overridepublicvoidcontextinitext } @ overridepublicvoidcontextdestroyed (servletcontexteventarg0) {System.out.println ('已销毁'); }使用http://www.Sina.com/servletcontextlistenerlistener完成创建servletcontext域对象时要初始化的任务,或运行自定义任务计划

侦听创建和销毁ServletRequest域对象:实现ServletRequestListener接口。

ServletRequest域对象的生命周期:

创建:访问服务器上的任何资源都会发送请求,而访问. html、 jsp和. servlet则会创建请求。

销毁:服务器响应了该请求。 @ weblistenerpublicclassmyservletrequestlistenerimplementsservletrequestlistener { @ overridepublicvoidrequestdestroyed (servevervimed ) servi de } @ overridepublicvoidrequestinitialized (servletrequesteventarg0) system.out.println (已创建servlet request ) 侦听创建和销毁http会话域对象:实现http会话监听器界面:

http会话域对象的生命周期:

创建:每次调用getSession ()方法时都会创建一次,并且只为每个会话创建一次。

放弃:1.超时(默认为30分钟)2.异常关机、 销毁3 .正常关闭服务器(序列化) weblistenerpublicclassmyhttpsessionlistenerimplementshttpsessionlistener @ overridepublicvoidser @ overridepublicvoidsessiondessiondestroyed (httpsessioneventarg0) system.out.println (' http session已销毁'); }角色:为每个用户登录站点时创建一个HTTPSession对象,并利用它来计算在线人数。

二、监听器拦截三个域对象属性的状态变化,拦截HttpSession属性的变化:实现HttpSessionAttributeListener界面。 监听ServletContext属性更改:实现ServletContextAttribute接口。 监听ServletRequest属性更改:实现ServletRequestAttribute接口。 三.监听器对HttpSession域的对象保存值的状态变更作用:

拦截对象绑定到session和未绑定的行为,并使用、 使JavaBean实现HttpSessionBindingListener接口: publicclassmyhttpsessionbindinglistener httpsessionbindingeventarg0(//todo auto-generatedmethodstubsystem.out.println ) ),绑定的); } @ overridepublicvoidvalueunbound (httpsessionbindingeventarg0)/todo auto-generatedmethodstubsystem.out.println } 用于侦听当前session的值钝化(序列化)或激活(反序列化)的行为,JavaBean提供HttpSessionActivationListener接口和可序列化接口。

钝化(串行化) :将存储器中的数据存储在硬盘中

激活(反序列化) :将硬盘中的数据传输到内存中的publicclassbeanimplementshttpsessionactivationlistener、 serializable (@ overridepublicvoidsessiondidant ) @ overridepublicvoidsessionwillpassivate (httpsessioneventarg0) { system }} session钝化和激活的意图:

如果session的值可能很多,而且您很长时间不使用此内存的值,请考虑将session的值保存到硬盘中(使其失活),然后在下次使用时将其从硬盘中提取(激活)到内存中。

设定为在一定时间内会话钝化:

在Tomcat中的conf/context.xml中配置-配置后将对此服务器上运行的所有项目启用。 在Tomcat中设置conf/catalina/localhost/context.XML (如果没有,则创建context.XML文件) localhost:8080/您自己的web工程项目

maxIdleSwap :设定在经过这个时间后会钝化。

directory :设定钝化保管的目录,如果没有的话自动创建。

contextmanagerclassname=' org.Apache.catalina.session.persistent manager ' maxidle swap='1' store class name=' org

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。