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>

posted @   爱吃雪糕的小布丁  阅读(11)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示