青木求鱼——leejie
我要强大到没有任何事物能够打扰到我内心地平静。
I want to be strong enough that no thing can disturb the tranquility of my heart.

Filter和Listener

a)   Filter(过滤器):过滤器可以对用户请求进行过滤和拦截。查看和操作客户端和服务器交换的数据。

编写过滤器:

   实现javax.servlet.Filter;

   实现三个方法init()、destroy()和doFilter(ServletRequest request,ServletResponse response,FilterChain chain)

   配置web.xml文件:

       <filter>

          <filter-name></filter-name>

          <filter-class></filter-class>

          <init-param>

       <param-name>参数名</param-name>

       <param-value>参数值</param-value>

          </init-param>

       </filter>

       <filter-mapping>

          <filter-name></filter-name>

          <url-pattern></url-pattern>

       </filter-mapping>

    Filter的参数一般通过FilterConfig.getInitParameter()获取。

b)   Listener(监听器)

1、   监听器简介及作用

2、   事件类与监听器接口

3、   在Eclipse中自定义监听器类

4、   综合案例

 

监听器简介及作用

监听器是Servlet2.4新增的一个技术,要使用Listener必须确保Web服务器支持该技术(例如,Tomcat 5.5以上支持Listener)。故名思议,监听器主要是监听Web会话中的一些事件(你还如上下文事件、请求属性事件、会话绑定事件等)。通过Listener来监听这些事件。Servlet中提供了8个Listener,以监听不同的相应事件(定义了6个事件)。

 

事件类与监听器接口

 

六个事件:

ServletContextEvent

ServletContextAttributeEvent

ServletRequestEvent

ServletRequestAttributeEvent

HttpSessionEvent

HttpSessionBindingEvent

八个监听器

ServletContextListener  (contextDestroyed(), contextInitialized())

ServletContextAttributeListener

ServletRequestListener

ServletRequestAttributeListener

HttpSessionListener (sessionCreated(), sessionDestroyed())

HttpSessionActivationListener

HttpSessionAttributeListener

HttpSessionBindingListener

 

使用Eclipse创建一个Listener类

定义监听器类之后,实现对应的方法。然后在web.xml文件中配置该监听器类。

  <listener>

  <description>实现在线人数计数</description>

  <display-name>FirstListener</display-name>

  <listener-class>app.listener.FirstListener</listener-class>

  </listener>

 

定义一个在线人数统计的监听器

原理:当用户打开一个页面时,将触发HttpSessionEvent事件的会话创建方法(即调用HttpSessionListener的sessionCreated()方法);当关闭一个页面时,将触发HttpSessionEvent事件的会话销毁方法(即调用HttpSessionListener的sessionDestroyed()方法)

c)   异常处理:通过创建一个JSP页面,并设置该页面的isErrorPage属性为true,在web.xml中注册该页面:

<error-page>

   <exception-type>异常类型</exception-type>

   <location>错误页面位置</location>

</error-page>

当该web应用发生某种异常时,会自动跳转到该页面。

posted on 2012-07-26 18:10  leejie1001  阅读(1621)  评论(0编辑  收藏  举报