过滤器filter学习进度一
2024-09-01 12:37:49
过滤器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() {
对于其中的方法:
- init:服务器启动后创建Filter对象,调用init方法,init方法只执行一次,一般用来加载资源
- doFilter:每次请求被拦截的资源时都会执行,可以执行多次
- 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>
哪里的/*是对所有的进行拦截操作。
- 拦截具体资源:index.jsp,表示只有访问该资源时对应的过滤器才会被执行
- 拦截目录:/dir/*,表示访问dir目录下的所有资源过滤器都会被执行
- 拦截后缀名:*.jsp,表示访问jsp资源时过滤器会被执行
- 拦截全部资源:/*,表示访问所有资源都会执行过滤器
最新文章
- .NET正则表达式基础入门(三)
- js引入php 用来加载静态页面 输出到页面中
- OpenWrt资料汇总
- bzoj1043 下落的圆盘
- 【LeetCode】118 &; 119 - Pascal&#39;s Triangle &; Pascal&#39;s Triangle II
- Ubuntu firefox falsh
- [转]SQL Server 和Oracle 数据类型对应
- lex/flex 笔记
- html-----008
- mysql中怎样查看和删除唯一索引
- 使用JSmooth制造java jar文件可以运行exe文件教程图像
- C#算两个时间段相差的时间
- 才趟过的一个坑,css造成的Validform表单提交按钮点击无效
- python 字典实现简单购物车
- Android系统服务详解-android学习之旅(95)
- Python函数的装饰器修复技术(@wraps)
- MyBatis(傻瓜式)框架
- angular生命周期
- 廖雪峰的python学习网址
- Resolving multicopy duplications de novo using polyploid phasing 用多倍体相位法解决多拷贝复制的新问题
热门文章
- ggplot之多变量绘图
- php里面的一些面试经典的函数
- Navicat15最新版本破解 亲测可用!!!
- iview-admin里面的 axios 给包装了一层数据 libs/axios.js 数据做了一层拦截
- SpringBoot图文教程17—上手就会 RestTemplate 使用指南「Get Post」「设置请求头」
- 【TIJ4】第四章全部习题
- Vulnhub靶场DC-1 WP
- Mol Cell Proteomics. | Mapping Spatio-temporal Microproteomics Landscape in Experimental Model of Traumatic Brain Injury Unveils a link to Parkinson’s Disease
- python报错:ERROR: No matching distribution found for dns.resolver
- K:剑指offer-56 题解 谁说数字电路的知识不能用到算法中?从次数统计到数字电路公式推导,一文包你全懂