美文网首页
JSP课程基础 -- Filter过滤器

JSP课程基础 -- Filter过滤器

作者: wangfanghua | 来源:发表于2019-03-04 10:36 被阅读0次

过滤器的作用不论是在前端和后端都存在非常重要的作用,但是其实现还是非常简单的。原理图:

[图片上传失败...(image-9de27e-1551666962606)]

在开发中过滤器有有一个什么样的角色?

在实际开发与前端对接时,前端开发者传输过来的数据一般是UTF-8格式的,而JSP中却不是这种默认格式。因此,我们需要将数据和页面格式相匹配。

但是,后端服务中不可能说只有一个控制器。在View与Controller的交互中,往往非常多的请求服务页面,因此如果每个页面都去设置一个设置编码语句,不久造成不必要的代码重复了吗?因此过滤器在其中扮演着规则的角色。我制定的规则,在我过滤的范围内都需要执行。

过滤器API

只需要实现Filter接口,和它的三个生命周期方法就能够使用了

其中init()和destory()和Servlet一样的作用。其中的精髓还是在于doFilter方法,它有三个参数ServletRequest,ServletResponse,FilterChain,前面两个都很熟悉,而FilterChain非常陌生那么它是什么呢?

FilterChain????

我们看一下它的源码:

public interface FilterChain {
    void doFilter(javax.servlet.ServletRequest servletRequest, javax.servlet.ServletResponse servletResponse) throws java.io.IOException, javax.servlet.ServletException;
}

看的出,它是一个interface接口。里面依旧是两个参数ServletRequest,ServletResponse。

其实在一个企业级项目中往往存在非常多的过滤器,比如在过滤编码的同时,还需要过滤登录状态,然后也需要过滤一些关键字......等等非常多过滤需求,一层一层过滤下去
[图片上传失败...(image-403c27-1551666962606)]

可以看的到,第一个过滤器执行了,如果碰到FilterChain的话会执行第二个过滤器,当执行完所有过滤操作后,从内向外依次关闭。

Filter的配置

有两种方法可以配置Filter,第一种是web.xml配置路径,范围,默认值,

<filter>
    <filter-name>FilterDemo1</filter-name>
    <filter-class>FilterDemo1</filter-class>
    <init-param>
        <param-name>word_file</param-name>  
        <param-value>/WEB-INF/word.txt</param-value>
    </init-param>
</filter> 
<filter-mapping>
    <filter-name>FilterDemo1</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<filter-name>子元素用于设置filter的注册名称。**该值必须是在元素中声明过的过滤器的名字

<url-pattern>设置 filter 所拦截的请求路径(过滤器关联的URL样式)**

<servlet-name>指定过滤器所拦截的Servlet名称**。

<dispatcher>指定过滤器所拦截的资源被 Servlet 容器调用的方式,可以是REQUEST,INCLUDE,FORWARD和ERROR之一,默认REQUEST。用户可以设置多个
<dispatcher>子元素用来指定 Filter 对资源的多种调用方式进行拦截。

第二种是通过注解:

@WebFilter(filterName = "FilterDemo1",urlPatterns = "/*")

过滤器是一个非常常见的东西,但是用处也是非常大的。

相关文章

  • JSP课程基础 -- Filter过滤器

    过滤器的作用不论是在前端和后端都存在非常重要的作用,但是其实现还是非常简单的。原理图: [图片上传失败...(im...

  • Filter,Listener

    Filter基本使用 过滤器Filter作为Web的组件,能对所有Web资源(Jsp,Servlet,,静态图片或...

  • Java 三大器之过滤器(Filter)工作原理

    Filter 简介 filter称为过滤器,可以对web 服务器管理的所有资源: Jsp, Servlet,静态图...

  • 第7章 Filter和Listener

    1. Filter过滤器 通过Filter技术,可以在用户访问某个Web资源(如:JSP、Servlet、HTML...

  • 拦截器和过滤器的区别

    过滤器(filter): 过滤器处于客户端与Web资源(Servlet、JSP、HTML)之间,客户端与Web资源...

  • 过滤器

    简介 Filter,过滤器,开发人员通过filter对web服务器管理的所有web资源(Jsp, Ser...

  • JAVA面试题 java web部分

    (一)Java web部分 1.Servlet和jsp页面过滤器Filter的作用及配置 【参考答案】 过滤器是一...

  • #Filter介绍--iOS思考

    Filter介绍--iOS思考 1.什么是Filter 过滤器是一个程序,先与相关的servlet或者JSP页面运...

  • filter JSP 过滤器

    当JSP容器启动网络应用程序时,它会创建每一个过滤器的实例,这些过滤器必须在部署描述文件web.xml中声明,并且...

  • Java篇-Filter

    一 : 过滤器Filter简述 过滤器是一个运行在服务端的程序,先于与之相关的servlet或JSP页面运行,实现...

网友评论

      本文标题:JSP课程基础 -- Filter过滤器

      本文链接:https://www.haomeiwen.com/subject/fzsbuqtx.html