论坛首页 Java企业应用论坛

servlet学习笔记(五)

浏览 1372 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2007-08-08  
一、监听器
以下是3个Listener接口。
ServletRequestListener
HttpSessionListener
ServletContextListener
这三个监听器接口,分别监听Servlet中3种比较中要的对象的创建和销毁。这三个接口中分别有监听该对象创建和销毁事件的方法,服务器本身就是事件源。

listener的配置
<listener>
<listener-class>alan.servlet.listener.AlanContextListener</listener-class>
        <!--listener-class也就是实现Listener接口的类-->
</listener>

Servlet中的重要对象(只针对应用)


                     数量                生命周期                  是否线程安全                          方法
-------------------------------------------------------------------------------------------------------------------------------------------                    
ServletContext        1                   (天)全局的                不安全                     setAttribute(String,Object)  全局属性
                                   只有在应用关闭时才销毁         需要加同步访问                 Object getAttribute(String)  任何Session
                                                                                                 void removeAttibute(String)  都可以取到  
-------------------------------------------------------------------------------------------------------------------------------------------                    
HttpSession        和用户的               (分/小时)局部的           不安全                     setAttribute(String,Object)  存储用户级
                   数量相同         只在有效时间内存在             可以不加同步访问              Object getAttribute(String)  的属性
                                                             synchronized(session){......}       void removeAttibute(String)
-------------------------------------------------------------------------------------------------------------------------------------------                    
ServletRequest       多个                 (秒)局部的               线程安全                    setAttribute(String,Object)  可以传递
(HttpServletRequest)                 只在servic()和doGet()                                       Object getAttribute(String)  大量信息
                                      doPost()中存在                                             void removeAttibute(String)  只使用一次
-------------------------------------------------------------------------------------------------------------------------------------------        

二、作用
1、主要对ServletContext、HttpSession、ServletRequest等对象行为的监听
2、必须要实现一个或多个listener interface
3、有两类监听器:声明周期监听器  ServletContextListener             HttpSessionListener              ServletRequestListener (2.4版本之后)
                 对象状态监听器  ServletContextAttributeListener    HttpSessionAttributeListener     ServletRequestAttributeListener
4、ServletContextListener中不能取得请求中的参数                
                
                
                                                 
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics