码迷,mamicode.com
首页 > 其他好文 > 详细

Servlet之过滤器(Filter)和监听器(Listener)

时间:2017-12-05 13:20:05      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:response   一个   分享   web应用   发送   编码   pre   搜索关键词   监听器   

过滤器

过滤器是一个java组件,可以拦截发送至某个servelet,jsp页面或静态页面的请求,可以在响应发送到客户之前进行拦截

工作原理:

技术分享图片

过滤器类必须实现 Filter 接口,包含的方法如下:

void destroy()   //销毁方法

void init(FilterConfig filterConfig) throws ServletException  //初始化方法

//主要的工作方法   
void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws java.io.IOException, ServletException {
    //这里写request的相关代码
    chain.doFilter(request, resp);
    //这里写response的相关代码
}

FilterChain chain 过滤器链

FilterChain 接口用于调用过滤器链中的下一个过滤器或调用过滤器结束后的资源

过滤器链如图:

技术分享图片

过滤器生命周期的各个阶段:

实例化:Web容器在不是web应用程序的时候对所有过滤器进行实例化

    web容器回调它的无参构造方法

初始化:实例化完成之后,马上进行初始化工作

    web容器回调init方法

过滤:请求路径匹配过滤器的URL映射

    web容器回调 doFilter方法  --> 主要工作方法 

销毁:Web容器在卸载web应用之前

    web容器回调 destroy方法

过滤器的实际应用:

1.对请求消息体中的数据设置统一的编码

2.阻止非法用户的请求

3.过滤非法数据

注意:

过滤器使用时需要在web.xml中配置,需要在

<filter>
    <display-name>OurFilter</display-name>
    <filter-name>OurFilter</filter-name>
        <filter-class>nm.filter.OurFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>OurFilter</filter-name>
    <url-pattern>/show.do</url-pattern>
</filter-mapping>

过滤器的简单实例应用

我们都知道当我们百度搜索关键词的时候,搜索出的关键词会变成着重飘红,

Servlet之过滤器(Filter)和监听器(Listener)

标签:response   一个   分享   web应用   发送   编码   pre   搜索关键词   监听器   

原文地址:http://www.cnblogs.com/nm666/p/7986243.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!