JavaWeb(十八)

过滤器:

什么是过滤器:

Filter是Tomcat服务器的过滤器,在请求到达服务器时先会调用过滤器,再调用我们的servlet或者jsp。

过滤器链:

过滤器可以组成一个过滤器链,链中的每个过滤器都可以负责特定的操作和任务;

客户端访问服务器的请求和响应在这些过滤器链之间传递;

FilterChain接口用于调用过滤器链中的一系列过滤器。

过滤器的生命周期:

package com.mhz.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

// 实例化: Web应用程序启动时,Web服务器通过web.xml创建Filter实例或者通过注解
@WebFilter("/*")
public class EncodeFilter implements Filter {
    
    //销毁:停止Web服务器时由容器调用过滤器的destroy()方法销毁实例
    public void destroy() {
    }

    //过滤:客户端提交请求或Web服务器发送响应时,调用doFilter()方法
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/hml;charset=utf-8");
        chain.doFilter(req, resp);
    }

    //初始化:调用init()方法初始化Filter实例
    public void init(FilterConfig config) throws ServletException {

    }

}

过滤器的应用:

敏感词过滤

        对请求的数据进行敏感词汇过滤。

         过滤敏感词替换为*

登录验证

        访问资源,验证是否已经登录

        如果已登录就直接放行

        . 如果未登录就跳转到登录页面

过滤器API:

所有的servlet过滤器都必须实现javax.servlet.Filter接口,在这个接口内定义了三个定义过滤器类必须要实现的方法
       init(FilterConfig filterConfig): Servlet过滤器的初始化方法。Servlet容器创建Servlet过滤器
实例后将调用这个方法。在这个方法内可以读取web.xml文件中的servlet过滤器的初始化参数;
       . doFilter(ServletRequest request,ServletResponse response,FilterChain chain):这个方法完成实际的过滤器操作。当客户请求访问与过滤器关联的URL时,Servlet容器将先调用过滤器的doFilter()方法。FilterChain参数用于访问后续过滤器;
       . destroy(): Servlet容器在销毁过滤器前调用该方法,释放servlet过滤器占用的内存。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值