首页 > 其他分享 >Servlet_2_过滤器

Servlet_2_过滤器

时间:2023-02-13 17:22:05浏览次数:36  
标签:Servlet servletRequest Filter 过滤器 servlet public MainFilter

使用过滤器,可以对请求数据进行处理后再交给servlet,也可以对servlet的响应数据进行处理后再交给浏览器。

 

 


一、基本知识

声明周期:

  与服务器共存亡。

使用步骤:

  1、编写过滤器类:实现 Filter 接口,重写 doFilter 方法,在方法内进行过滤操作。

  2、在web.xml中配置此过滤器的生效范围。


二、编写过滤器类

例子:

  实现了在访问servlet之前先统一编码格式。

public class MainFilter implements Filter {


    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        Filter.super.init(filterConfig);
        //服务器启动的时候执行
    }

    /**
     * 进行过滤操作
     * @param servletRequest 请求数据
     * @param servletResponse 响应数据
     * @param filterChain
     * @throws IOException
     * @throws ServletException
     */
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        //对请求数据做处理,统一编码格式
        servletRequest.setCharacterEncoding("utf-8");
        servletResponse.setContentType("text/html;charset=utf-8");

        //放行,让它去找它的servlet服务处理
        filterChain.doFilter(servletRequest,servletResponse);

        //对响应数据做处理
    }

    @Override
    public void destroy() {
        Filter.super.destroy();
        //服务器关闭的时候执行
    }
}

三、web.xml中配置

例子:

  实现了过滤对所有servlet的请求。

    <!--配置过滤器-->
    <filter>
        <filter-name>MainFilter</filter-name>
        <filter-class>com.lurenjia.filter.MainFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>MainFilter</filter-name>
        <!--生效的servlet:
                全局:*
                局部:*.do (表示以 .do 结尾的servlet)
                指定:具体的servlet别名-->
        <url-pattern>/*</url-pattern>
    </filter-mapping>

 

标签:Servlet,servletRequest,Filter,过滤器,servlet,public,MainFilter
From: https://www.cnblogs.com/lurenjia-bky/p/17117058.html

相关文章