Filter

  • 1.简介
  • 2.使用步骤
  • 3.建filter的class
  • 4.配web.xml

1.简介

filter是对客户端访问资源的过滤,符合条件就通过,反之不通过。筛选请求的东西

2.使用步骤

1)编写一个过滤器的类实现Filter接口
2)实现接口中尚未实现的方法(着重实现doFilter方法)
3)在web.xml中进行配置(主要是配置要对哪些资源进行过滤)

3.建filter的class

package filter;import java.io.IOException;import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterConfig;//直接加满不多说
public class OneFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException{}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {// TODO Auto-generated method stub}@Overridepublic void destroy(){   }
}

函数意义:
init(Filterconfig):代表filter对象初始化方法 filter对象创建时执行
doFilter(ServletRequest,ServletResponse,FilterCha):代表filter执行过滤的核心方法,如果某资源在已经被配置到这个filter进行过滤的话,那么每次访问这个资源都会执行doFilter方法
destory():代表是filter销毁方法 当filter对象销毁时执行该方法
函数内部API解释:
1)init(FilterConfig)
其中参数config代表 该Filter对象的配置信息的对象,内部封装是该filter的配置信息。
2)destory()
filter对象销毁时执行
3)doFilter方法
doFilter(ServletRequest,ServletResponse,FilterChain)
其中的参数:
ServletRequest/ServletResponse:每次在执行doFilter方法时 web容器负责创建一个request和一个response对象作为doFilter的参数传递进来。该request个该response就是在访问目标资源的service方法时的request和response。
FilterChain:过滤器链对象,通过该对象的doFilter方法可以放行该请求。

一般filter都是一个链,web.xml 里面配置了几个就有几个。一个一个的连在一起

4.配web.xml


url-pattern配置时
1)完全匹配 /sertvle1
2)目录匹配 /aaa/bbb/* ----最多的
/user/:访问前台的资源进入此过滤器
/admin/
:访问后台的资源时执行此过滤器
3)扩展名匹配 *.abc *.jsp

注意:url-pattern可以使用servlet-name替代,也可以混用
dispatcher:访问的方式(了解)
REQUEST:默认值,代表直接访问某个资源时执行filter
FORWARD:转发时才执行filter
INCLUDE: 包含资源时执行filter
ERROR:发生错误时 进行跳转是执行filter

总结:
1)公共代码的提取
2)可以对request和response中的方法进行增强(装饰者模式/动态代理)
3)进行权限控制

filter笔记(主要看到黑马教程的ppt)相关推荐

  1. 微信小程序学习笔记--商城案例(黑马教程)

    目录 起步 运行于小程序 Git 托管到码云 tabbar 创建tabBar 配置tabbar 导航条颜色 首页 网络配置 请求轮播图数据 渲染轮播图 配置小程序分包 点击轮播图,跳转详情页 全局添加 ...

  2. c语言程序设计教程ppt,《C语言程序设计教程》.ppt

    <<C语言程序设计教程>.ppt>由会员分享,可在线阅读,更多相关<<C语言程序设计教程>.ppt(30页珍藏版)>请在装配图网上搜索. 1.第1章 预 ...

  3. 大学计算机excel函数课件,《Excel函数教程》PPT课件.ppt

    <<Excel函数教程>PPT课件.ppt>由会员分享,可在线阅读,更多相关<<Excel函数教程>PPT课件.ppt(46页珍藏版)>请在装配图网上搜 ...

  4. git笔记(团队协作教程,GitHub操作)

    git笔记(本地操作教程) git笔记(团队协作教程,GitHub操作) git笔记(IDEA 集成 Git) git笔记(IDEA 集成 GitHub) 自建代码托管平台-GitLab 远程仓库操作 ...

  5. 【MySQL】黑马教程MySQL数据库 MySQL基础(一)

    文章目录 [MySQL]黑马教程MySQL数据库 | MySQL基础(一) MySQL启动 MySQL客户端连接 MySQL数据模型 SQL SQL分类 DDL 表操作-查询 表操作-创建 表操作-数 ...

  6. oracle教程课件,Oracle教程三PPT课件

    <Oracle教程三PPT课件>由会员分享,可在线阅读,更多相关<Oracle教程三PPT课件(29页珍藏版)>请在人人文库网上搜索. 1.第三章 锁和分区表,.,2,回顾,S ...

  7. linux教程 课件,《Linux实用教程》PPT课件

    <Linux实用教程>PPT课件 (56页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 Linux实用教程第6章 Linux ...

  8. 读书笔记:NOSQL 菜鸟教程

    读书笔记:NOSQL 菜鸟教程 定义 NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL". NoSQL用于超大规模数据的存储.(例如谷歌或Facebo ...

  9. 读书笔记:《SEO教程:搜索引擎优化入门与进阶》(4)——代码优化

    --对HTML源代码进行必要的调整. 1.去掉冗余代码 --降低页面体积 --提高搜索引擎友好性 做法: 去掉每行代码前面.后面的空格字符: 去掉空白行: 2. HTML标签转换 --使用短标签替换同 ...

最新文章

  1. redis优雅的批量删除key
  2. drools。drools_Drools Planner重命名为OptaPlanner:宣布www.optaplanner.org
  3. MACOSX下查看某个端口被哪个程序占用及杀进程方法
  4. 遇见未来 | MongoDB增强事务支持,向NewSQL的方向迈进
  5. UML(1) - 概述
  6. SpringBoot配置RestTemplate的代理和超时时间
  7. 最速下降法python_最速下降法python实现
  8. 微服务调用Ribbon负载均衡、Feign的使用
  9. 历年奥斯卡获奖影片(1927—2015)
  10. PAT-A1013. 数素数 (20)
  11. java写 狐狸找兔子_C++经典问题:狐狸找兔子
  12. subst ( 将任意目录挂载成虚拟磁碟机 )
  13. 使用QQ推广作为客服或留言
  14. 2019年12月份统考计算机应用基础题库,2019年12月网络教育统考《计算机应用基础》模拟题...
  15. 算法开启栈转队列武魂
  16. 服务器上搭建Lepus——开源的数据库监控系统
  17. robosense速腾16线激光雷达配置过程
  18. MapGis 二次开发 常见问题 转
  19. 软件测试周刊(第62期):无论你处于什么状态,你都要明白,生活的目标是健康和快乐。
  20. 你画我猜 计算机题目,你画我猜:你知道这些题目的答案是什么吗?

热门文章

  1. cisco failover 概念
  2. 通过v$sqlarea,v$sql查询最占用资源的查询
  3. tensorflow学习之常用函数总结:tensorflow.argmax()函数
  4. Leecode 953. Verifying an Alien Dictionary[Easy]
  5. 【深度学习原理】交叉熵损失函数的实现
  6. 写直通与访存次数计算问题
  7. Windows Azure Storage (1) Windows Azure Storage Service存储服务
  8. 软工网络15个人作业5--软件工程总结
  9. linux上设置tomcat下web项目只需要ip地址访问省略端口和项目名称
  10. 在磁盘上给文件快速预留一大片空间