当前位置:网站首页>过滤器(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);
}完
边栏推荐
- @requestmapping注解的作用及用法
- 360核心安全大脑3.0正式发布,构建政企用户的“能力中枢平台”
- Shell programming conditional statement test command Integer value, string comparison Logical test File test
- .NET 跨平台应用开发动手教程 |用 Uno Platform 构建一个 Kanban-style Todo App
- pytorch的安装注意事项
- 46.
- binglog日志追踪:数据备份并备份追踪
- 封装、获取系统用户信息、角色及权限控制
- WMware Tools安装失败segmentation fault解决方法
- 如何在WordPress网站上添加导航菜单
猜你喜欢

binglog log tracking: data backup and backup tracking

web漏洞之需要准备的工作

WMware Tools安装失败segmentation fault解决方法

45.【list链表的应用】

从笔试包装类型的11个常见判断是否相等的例子理解:包装类型、自动装箱与拆箱的原理、装箱拆箱的发生时机、包装类型的常量池技术

【深入浅出玩转FPGA学习15----------时序分析基础】

从两个易错的笔试题深入理解自增运算符

Mysql体系化之JOIN运算实例分析

如何在WordPress网站上添加导航菜单

IOT cross-platform component design scheme
随机推荐
边缘计算与小程序也能结合!智能家居是否能借势上台阶
WebServer process explanation (registration module)
Bypass of xss
H5跳转微信公众号解决方案
状态机动态规划之股票问题总结
mysql索引失效的常见9种原因详解
Method for deduplication of object collection
XSS相关知识
MySQL面试题
借助深度估计的点云场景重建
Shell编程条件语句 test命令 整数值,字符串比较 逻辑测试 文件测试
How to solve types joiplay simulator does not support this game
46.
align-content、justify-content、align-items三个属性的作用和效果
Neural Network (ANN)
leetcode 406. Queue Reconstruction by Height
神经网络(ANN)
pytorch双线性插值
消息队列存储消息数据的MySQL表设计
MySQL数据库面试题总结(2022最新版)