过滤器filter他的理解是:

filter是对客户端访问资源的过滤,符合条件放行,不符合条件的不放行,并且可以对目标资源访问的前后进行逻辑处理。

快速入门:

1、编写一个过滤器的类实现filter接口。

2、实现接口中尚未实现的方法(着重实现dofilter方法)

3、在web.xml进行配置(主要是配置要对的那些资源进行过滤)

(实际就是放过哪一个,不放过哪一个的判断操作)。

进行拦截的先关fliter的操作:

public class FilterDemo1 implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException { }
// doFilter业务处理的核心代码区,相当于Servlet的service方法
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("FilterDemo1----------------------");
} @Override
public void destroy() {

对于其中的方法:

  1. init:服务器启动后创建Filter对象,调用init方法,init方法只执行一次,一般用来加载资源
  2. doFilter:每次请求被拦截的资源时都会执行,可以执行多次
  3. destroy:服务器关闭后Filter对象被销毁,如果服务器是正常关闭,就会执行destroy方法

主要是重写dofilter

之后就是对其进行放行:

public class FilterDemo1 implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException { }
// doFilter业务处理的核心代码区,相当于Servlet的service方法
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("FilterDemo1----------------------"); Chain.doFilter(servletRequest, servletResponse);// 过滤器放行请求,可以访问到index.jsp
} @Override
public void destroy() {

主要是通过chain进行对其放行。

然后就是对于web的相应的配置:

    <filter>
<filter-name>demo1</filter-name>
<filter-class>cn.zhuobo.web.filter.FilterDemo1</filter-class>
</filter> <filter-mapping>
<filter-name>demo1</filter-name>
<url-pattern>/*</url-pattern> <!-- 这里配置的是拦截路径 -->
</filter-mapping>

哪里的/*是对所有的进行拦截操作。

  1. 拦截具体资源:index.jsp,表示只有访问该资源时对应的过滤器才会被执行
  2. 拦截目录:/dir/*,表示访问dir目录下的所有资源过滤器都会被执行
  3. 拦截后缀名:*.jsp,表示访问jsp资源时过滤器会被执行
  4. 拦截全部资源:/*,表示访问所有资源都会执行过滤器

最新文章

  1. .NET正则表达式基础入门(三)
  2. js引入php 用来加载静态页面 输出到页面中
  3. OpenWrt资料汇总
  4. bzoj1043 下落的圆盘
  5. 【LeetCode】118 &amp; 119 - Pascal&#39;s Triangle &amp; Pascal&#39;s Triangle II
  6. Ubuntu firefox falsh
  7. [转]SQL Server 和Oracle 数据类型对应
  8. lex/flex 笔记
  9. html-----008
  10. mysql中怎样查看和删除唯一索引
  11. 使用JSmooth制造java jar文件可以运行exe文件教程图像
  12. C#算两个时间段相差的时间
  13. 才趟过的一个坑,css造成的Validform表单提交按钮点击无效
  14. python 字典实现简单购物车
  15. Android系统服务详解-android学习之旅(95)
  16. Python函数的装饰器修复技术(@wraps)
  17. MyBatis(傻瓜式)框架
  18. angular生命周期
  19. 廖雪峰的python学习网址
  20. Resolving multicopy duplications de novo using polyploid phasing 用多倍体相位法解决多拷贝复制的新问题

热门文章

  1. ggplot之多变量绘图
  2. php里面的一些面试经典的函数
  3. Navicat15最新版本破解 亲测可用!!!
  4. iview-admin里面的 axios 给包装了一层数据 libs/axios.js 数据做了一层拦截
  5. SpringBoot图文教程17—上手就会 RestTemplate 使用指南「Get Post」「设置请求头」
  6. 【TIJ4】第四章全部习题
  7. Vulnhub靶场DC-1 WP
  8. Mol Cell Proteomics. | Mapping Spatio-temporal Microproteomics Landscape in Experimental Model of Traumatic Brain Injury Unveils a link to Parkinson’s Disease
  9. python报错:ERROR: No matching distribution found for dns.resolver
  10. K:剑指offer-56 题解 谁说数字电路的知识不能用到算法中?从次数统计到数字电路公式推导,一文包你全懂