当前位置:网站首页>过滤器(Filter)
过滤器(Filter)
2022-07-31 00:17:00 【^O^——】
目录
一、如何使用过滤器(Filter)
1.1.写一个类实现(implements)Filter(过滤器类,Filter来自 Filter - javax,servlet接口中)。
1.2.重写三个方法
@Override
public void destroy() {
System.out.println("过滤器被销毁!");
}
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
throws IOException, ServletException {
System.out.println("请求被过滤器拦截!");
}
@Override
public void init(FilterConfig arg0) throws ServletException {
// 启动Tomcat服务
System.out.println("过滤器初始化/过滤器被创建!");
}二、通过xml配置过滤器
<!-- 配置过滤器 -->
<filter>
<filter-name>loginFilter</filter-name>
<filter-class>com.zking.filter.LoginFilter</filter-class>
<!-- 配置过滤器初始化参数 -->
<!-- 参数1 -->
<init-param>
<!-- 参数名 -->
<param-name>name</param-name>
<!-- 参数值 -->
<param-value>张三</param-value>
</init-param>
<!-- 参数2 -->
<init-param>
<!-- 参数名 -->
<param-name>sex</param-name>
<!-- 参数值 -->
<param-value>男</param-value>
</init-param>
</filter>
<!-- 配置过滤器映射文件 -->
<filter-mapping>
<filter-name>loginFilter</filter-name>
<!-- 设置过滤器要过滤的请求 -->
<!-- 1.过滤单个请求 -->
<url-pattern>/index.jsp</url-pattern>
<!-- 2.过滤指定后缀名的请求 -->
<!-- 如:过滤所有后缀名为.jsp的页面 -->
<url-pattern>*.jsp</url-pattern>
<!-- 3.过滤指定目录的请求 -->
<url-pattern>/home/index.jsp</url-pattern>
<!-- 4.过滤整个项目的所有请求 -->
<url-pattern>/*</url-pattern>
</filter-mapping>
三、通过注解配置过滤器
3.1.配置过滤单个请求
@WebFilter("/index.jsp")3.2.配置过滤多个请求
@WebFilter(
filterName = "loginFilter",// 配置过滤器的名字,相当于<filter-name>loginFilter</filter-name>
urlPatterns = {"/login.jsp","/index.jsp"},// 配置过滤多个页面
// 配置初始化参数
initParams = {
@WebInitParam(name = "name",value = "张三"),
@WebInitParam(name = "sex",value = "男")
}
)
四、获取过滤器配置的初始化参数
// 在初始化方法里面获取配置的初始化参数
@Override
public void init(FilterConfig arg0) throws ServletException {
// 启动Tomcat服务
System.out.println("过滤器初始化/过滤器被创建!");
// 获取配置的初始化参数
String name = arg0.getInitParameter("name");
String sex = arg0.getInitParameter("sex");
System.out.println("name = " + name);
System.out.println("sex = " + sex);
}
五、过滤器的使用
1.转换参数arg0和arg1(要使用request和response里面的方法)
HttpServletRequest req = (HttpServletRequest)arg0;
HttpServletResponse resp = (HttpServletResponse)arg1;
2.设置编码
req.setCharacterEncoding("utf-8");
resp.setContentType("html/text;charset=utf-8");
3.使用arg2.doFilter(arg0, arg1),可以让被过滤器拦截的页面继续正常运行。
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
throws IOException, ServletException {
System.out.println("请求被过滤器拦截!");
// 转换参数arg0和arg1
HttpServletRequest req = (HttpServletRequest)arg0;
HttpServletResponse resp = (HttpServletResponse)arg1;
// 设置编码
resp.setContentType("html/text;charset=utf-8");
// 放行/继续前进
arg2.doFilter(arg0, arg1);
}完
边栏推荐
- 借助深度估计的点云场景重建
- 45. [Application of list linked list]
- Machine Learning 1-Regression Model (2)
- Gabor滤波器学习笔记
- 从笔试包装类型的11个常见判断是否相等的例子理解:包装类型、自动装箱与拆箱的原理、装箱拆箱的发生时机、包装类型的常量池技术
- Regular expression password policy and regular backtracking mechanism bypass
- pytorch双线性插值
- joiplay模拟器如何使用
- SWM32系列教程6-Systick和PWM
- How to solve types joiplay simulator does not support this game
猜你喜欢

Regular expression password policy and regular backtracking mechanism bypass

How to solve types joiplay simulator does not support this game

MySQL的grant语句
Go 学习笔记(84)— Go 项目目录结构

xss靶机训练【实现弹窗即成功】

2D Transform Module && Media Queries

Android安全性优化——APP加固

Shell编程条件语句 test命令 整数值,字符串比较 逻辑测试 文件测试

【深入浅出玩转FPGA学习13-----------测试用例设计1】

Bugku sql注入
随机推荐
Error ER_NOT_SUPPORTED_AUTH_MODE Client does not support authentication protocol requested by serv
360核心安全大脑3.0正式发布,构建政企用户的“能力中枢平台”
Necessary artifacts - AKShare quants
Summary of the stock problem of state machine dynamic programming
2D Transform Module && Media Queries
MySQL数据库面试题总结(2022最新版)
background对float的子元素无效
状态机动态规划之股票问题总结
ES6中 async 函数、await表达式 的基本用法
数据库的严格模式
go mode tidy出现报错go warning “all“ matched no packages
(五)fastai应用
mysql索引失效的常见9种原因详解
Point Cloud Scene Reconstruction with Depth Estimation
消息队列存储消息数据的MySQL表设计
46.
How to adjust Chinese in joiplay simulator
【深度学习】Transformer模型详解
46.<list链表的举列>
正则表达式密码策略与正则回溯机制绕过