学习笔记 —— 过滤器

Filter过滤器

到达请求资源之前执行的一段代码。
实现Filter接口

1. 创建过滤器类

  • @WebFilter("/*")
    “/ * ”:无论是jsp还是servlet都会执行
  • @WebFilter("/index.jsp")
    表示在到达web组件index.jsp之前执行此代码
    在这里插入图片描述

2.过滤器:处理表单和响应对象的中文

在这里插入图片描述

3. 生命周期方法

  • init(FilterConfig config) 初始化参数
  • doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
    doFilter方法:继续执行请求
  • destory()

4. 初始化参数的配置

  • 配置文件方式:
    < filter>
            < filter-name>filter3< /filter-name>
            < filter-class>cn.tedu.filter.DemoFilter3< /filter-class>
            < init-param>
                < param-name>name</ param-name>
                < param-value>admin</ param-value>
            < /init-param>
    < /filter>
    < filter-mapping>
           < filter-name>filter3< /filter-name>
            < url-pattern>/HelloServlet< /url-pattern>
    < /filter-mapping>
  • 注解方式:
    @WebFilter(urlPatterns= {"/HelloServlet"},
                         initParams= {
                               @WebInitParam(name=“name”,value=“admin”),
                               @WebInitParam(name=“pw”,value=“123”)
                          })
    获取初始化参数的值
    fConfig.getInitParameter(“name”)

4. 其他情况过滤器处理方式

  • 默认filter是request请求时执行的一段代码
  • 请求转发或出现错误404或者请求包含时,怎样执行过滤器?
    • 配置文件方式
      < filter-mapping>
      < filter-name>filter3< /filter-name>
      < url-pattern>/HelloServlet< /url-pattern>
      < dispatcher>INCLUDE< /dispatcher>
      < dispatcher>REQUEST< /dispatcher>
      < dispatcher>ERROR< /dispatcher>
      < dispatcher>FORWARD< /dispatcher>
      < dispatcher>ASYNC< /dispatcher>
      < /filter-mapping>
    • 注解方式
      @WebFilter(urlPatterns= {"/*"},
      initParams= {
      @WebInitParam(name=“name”,value=“admin”)
      },
      dispatcherTypes= {
      DispatcherType.REQUEST,
      DispatcherType.INCLUDE,
      DispatcherType.ERROR,
      DispatcherType.FORWARD
      })
      在这里插入图片描述

5. 多个过滤器执行的先后顺序

  • xml配置文件的方式:按照< filter-mapping > 的先后顺序
  • 注解:按照过滤器名的字母先后顺序(从小到大)
    注解
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值