java--监听器

来源:互联网 发布:访客营销效果数据每封 编辑:程序博客网 时间:2024/05/18 19:38


监听器分类:1.按监听器的对象划分:a 用户监听应用程序环境对象(ServletContext)的时间监听器b 用于监听用户会话对象(HttpSession)的事件监听器c 用于监听请求消息对象(ServletRequest)的事件监听器。2.按事件划分a 监听域对象自身的创建和销毁的事件监听器b 监听域对象中的属性的增加和删除的事件监听器c 监听绑定到HttpSession域中的某个对象的状态的事件监听器

sessionCreated方法:public void sessionCreated(HttpSessionEvent se)session创建时调用sessionDestroyed方法:public void sessionDestroyed(HttpSessionEvent se)session销毁时调用
可以通过在web.xml设置<session-config>的<session-timeout>来设session过期时间

ServletContext的创建和销毁实现ServletContextListener接口用于监听它的创建和销毁事件一个项目中可以有多个ServletContextListener,但是只有一个ServletContext对象有两个事件处理方法:(1)contextInitialized方法:public void contextInitialized( ServletContextEvent sce )ServletContext创建时调用参数 ServletContextEvent 事件对象,可以获取ServletContext对象以及一些初始化参数例如:1.获取ServletContext对象: ServletContext sc = sce.getServletContext();获取初始化参数:sc.getInitParmeter("参数名称");初始化参数在web.xml中配置:<context-param><param-name>initParam</param-name><param-value>imooc</param-value></context-param>2.设置ServletContext属性:sc.setAttribute("name",obj);然后在其它地方获取getAttribute("name")(2)contextDestroyed方法:public void contextDestroyed( ServletContextEvent sce )ServletContext销毁时调用主要用于数据库链接关闭时释放一些资源,以免过度的占用。


ServletRequest的事件监听器实现ServletRequestListener接口用于监听它的创建和销毁事件一个ServletRequest可以注册多个ServletRequestListener接口,在web.xml中注册有两个事件处理方法:requestInitialized方法:public void requestInitialized(ServletRequestEvent sre)request创建时调用参数ServletRequestEvent可以获取ServletRequest对象 ServletRequest sr = sre.getServletRequest()进而获取初始化参数:sr.getInitParmeter("")requestDestroyed方法:public void requestDestroyed(ServletRequestEvent sre)request销毁时调用ServletRequest的主要用途:读取参数记录访问历史request监听的是用户的每一个访问请求
request.getParameterNames()方法是将发送请求页面中form表单里所有具有name属性的表单对象获取(包括button).返回一个Enumeration类型的枚举.通过Enumeration的hasMoreElements()方法遍历.再由nextElement()方法获得枚举的值.此时的值是form表单中所有控件的name属性的值.最后通过request.getParameter()方法获取表单控件的value值.Enumeration pNames=request.getParameterNames();while(pNames.hasMoreElements()){    String name=(String)pNames.nextElement();    String value=request.getParameter(name);    out.print(name + "=" + value);}request.getParameterValues("name")方法将获取所有form表单中name属性为"name"的值.该方法返回一个数组.遍历数组就可得到value值.

监听器的分类-按监听事件划分:1、监听器绑定到HttpSession域中的某个对象的状态事件监听器;2、HttpSession中的对象状态:(1)绑定:通过setAttribute();(2)解除绑定:removeAttribute();(3)钝化:将session对象序列化到存储设备上(4)活化:将session对象从存储设备上进行恢复3、session钝化机制:(1)把服务器中不常使用的session对象暂时的序列化到系统文件或是数据库中,当使用时反序列化到内存中,整个过程有服务器自动完成。(2)session的钝化机制由SessionManager管理4、实现绑定和解除绑定,创建一个【普通的javabean】绑定和解除绑定需实现【HttpSessionBindingListener】接口;实现钝化和活化,需实现HttpSessionActivationListener接口和Serializable接口


0 0