学习Java开发者

Java web开发--过滤器篇(详细介绍)

2018-03-20  本文已影响0人  是九歌呀

一. web过滤器的介绍

1.过滤器

在生活中,过滤这种我们时常可见;比如水资源的处理,化学药剂的提取等等。所谓过滤,就是指对某事物的处理进行一定的处理获取相应的结果的一个过程。它可以总结为下:

过滤源==>过滤规则==>过滤结果
过滤源:需要过滤的东西
过滤规则:对过滤东西的处理
过滤结果:经过过滤后所得的东西

2.web过滤器

过滤器在web中的应用定义

过滤器 是一个服务器端的组件,它可以截取用户端的请求和响应信息,并对这些信息过滤。

3.web过滤器的工作原理

在没有过滤器的情况下,用户的请求可以直接进行访问服务器web资源

没有过滤器的情况下

在存在过滤器的情况下,客户端的请求是不能直接访问服务器端web资源。
过滤器的具体工作原理:


过滤器的工作原理

过滤器在web程序启动的时候便会进行加载。用户发送请求并不是直接到web资源,而是先到过滤器;过滤器判断我们的请求是否合法、是否符合规则;符合规则后过滤器再将用户请求发送到web资源;web资源处理完信息响应到过滤器;过滤器再将web资源的响应发送给用户

3.web过滤器的生命周期

web的生命周期分为四种

过滤器的生命周期

4.web过滤器中的方法

二.过滤器简单案例

1.创建web项目。并创建一个类实现Filter接口

创建FirstFilter类

2.在web.xml中配置过滤器

  <!-- ……………… -->
  <!-- Filter配置 -->
  <filter>
    <filter-name>Filter名字</filter-name>
    <filter-class>Filter的完整类名称</filter-class>
    <description>描述信息</description>
    <init-param>
        <param-name>参数名称</param-name>
        <param-name>参数的值</param-name>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>Filter名字</filter-name>
    <url-pattern>URL</url-pattern>
    <dispatcher></dispatcher>
  </filter-mapping>
  <!-- ……………… -->

注意

我的配置

3.在类中写输出数据测试

在Filter的实现类中的方法中写入输出数据,在index.jsp中前面增加输出。方便之后看到过滤器执行耳朵顺序。

FirstFilter类 index.jsp文件

4.启动服务器,访问index.jsp页面

访问https://http://127.0.0.1:8080/Filter/后仔细观察运行结果

在tomcat服务器启动时执行了构造方法和init()方法 访问jsp页面时执行了doFilter方法

所以可以总结Filter实现类中方法的运行顺序为:

构造器==> init() ==> doFilter() ==>…………==> destroy()
在执行doFilter()方法时,chain.doFilter()方法将请求传给了index.jsp,最后才输出end……doFilter

面试题两点:

1.过滤器可以更改用户请求的路径
2.过滤器不能直接处理用户请求的数据,也不能直接返回数据

三.过滤器链

1.过滤器链

过滤器链:指针对一个用户请求,而根据路径所匹配到的过滤器有多个。这时候用户请求就会依次通过各个过滤器到达web资源。

2.过滤器链的执行顺序以及原理

服务器会按照web.xml文件中过滤器定义的先后顺序组装成一条过滤器链。通过doFilter()方法依次执行后面的过滤器直至所有过滤器执行完毕后访问到web资源。

过滤链的执行顺序及原理
上一篇 下一篇

猜你喜欢

热点阅读