Javaweb(servlet)中实现过滤器Filter
1.要实现Filter(javax.servlet)接口,和servlet写法差不多。
2.实现三个方法,init和destory会报错,就把报错的那行删掉。
代码如下:
import javax.servlet.*;
import java.io.IOException;
public class javaFilter implements Filter {
//初始化:web服务器启动,就已经初始化了,随时等待过滤对象出现
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("javaFilter初始化");
}
/*
* filterChain:链
* 1.过滤中的所有代码,在过滤特定请求时都会执行
* 2.必须要让过滤器继续同行:
* filterChain.doFilter(servletRequest,servletResponse);
* */
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
servletRequest.setCharacterEncoding("utf-8");
servletResponse.setCharacterEncoding("utf-8");
servletResponse.setContentType("text/html;charset=UTF-8");
System.out.println("执行前....");
filterChain.doFilter(servletRequest,servletResponse);//让我们请求继续走,如果不写程序到这里就被拦截停止
System.out.println("执行后....");
}
//销毁:web服务器关闭的时候,过滤就会销毁
@Override
public void destroy() {
System.out.println("javaFilter销毁");
}
}
过滤器代码写好之后,要在web.xml中注册过滤器才能使用:
<filter>
<filter-name>javaFilter</filter-name>
<filter-class>com.tang.filter.javaFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>javaFilter</filter-name>
<url-pattern>/servlet/*</url-pattern>
<!--只要是servlet下(指链接而不是文件目录)的,都会被这个过滤器过滤-->
</filter-mapping>
分类:
JavaWeb
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)