Filter

filter

在web.xml中配置error-page

可以为错误响应,设置指定的页面eg:404/404.jsp

url-pattern(和Servlet一样)

filterConfig(了解)

filter的配置对象

配置信息

Servlet中

一个路径只能对应一个servletservlet优先级完全匹配 > 目录匹配 > 后缀名匹配

Filter中

一个路径可以对应多个filterfilter的优先级由filter-mapping的顺序决定

*.jsp *.action

/a/*

/a/demo1

完全匹配

目录匹配

后缀名匹配

注意事项

getInitParameter("name");

getServletContext();

获取filter的初始化参数

获取servletContext()

作用:

方法

filter-name:

指定过滤器

servlet-name指定过滤哪个servlet(filter-mapping下配置)

ServletNameFilter 注意:直接写Servlet的name的值(无 / ) Demo4Servlet 使用的时候尽量不要包含另外一个路径eg:url-pattern:/*servlet-name:/demo5

dispatcher:配置过滤哪个地方发送的请求

REQUEST:只过滤从浏览器直接发送过来的请求(默认值)

FORWARD:只过滤请求转发过来的请求

INCLUDE(了解):只过滤包含过来的请求

ERROR(了解):只过滤错误过来的请求

默认request,一旦设置了dispatcher的值,默认值就失效了

dispatcher标签可以出现多次

注意:

取值

filter-mapping下的子标签

生命周期相关方法

执行原理

Filter是单实例多线程的

init() 初始化方法

项目启动时执行

doFIlter(request,response,chain) 过滤逻辑

destory() 销毁方法

服务器正常关闭或项目从服务器移除

创建

当服务器启动的时候,服务器会创建Filter对象,执行init方法,实现初始化操作.

执行过滤

当请求来的时候,判断该请求是否需要过滤(根据路径判断),若需要,则调用filter的doFilter方法,执行过滤操作.若不需要过滤,直接访问资源

销毁

当服务器正常关闭或项目从服务器上移出的时候,服务器会调用destory方法,实现filter的销毁操作.

ServletRequest request

存放请求信息的对象

ServletResponse response

存放响应信息的对象

FilterChain chain(了解)

多个filter对一个请求进行的过滤的时候,形成一个过滤器链,当第一个过滤器放行的时候,将请求放行到下一个过滤器上.若当前的过滤器是最后一个过滤器,放行的时候才可以到达目标资源

1.编写一个类

2.编写配置文件

3.测试

实现Filter接口

重写抽象方法(doFilter())

注册filter

绑定路径

是什么

作用

应用场景

过滤器和servlet及listener成为javaweb的三大组件

过滤请求和响应

自动登录,统一编码,权限控制.....

概述

入门案例

doFilter方法

Filter生命周期(了解)

Filter其他内容

错误的友好页面

只需要在项目下提供错误的友好页面

方法增强

1.装饰者类和被装饰者类实现同一个接口或者继承同一个类

2.在装饰者类中需要有被装饰者的对象引用.

3.对需要增强的方法进行增强

4.对不需要增强的方法调用原来的逻辑即可.

方式一:继承

方式二:动态代理

方式三:装饰者模式

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171217G0NPJ100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券