Servlet过滤器

一、过滤器的基本概念

  1. 生命周期:

    • 过滤器具有三个生命周期方法:
      • init(FilterConfig config): 初始化方法,在 Web 容器加载过滤器时调用一次。
      • doFilter(ServletRequest request, ServletResponse response, FilterChain chain): 主要处理方法,每次请求或响应经过过滤器时调用。
      • destroy(): 销毁方法,在 Web 容器卸载过滤器时调用

二、过滤器写法: 

package UI;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
//使用注解配置过滤器,*表示所有请求都会被过滤
@WebFilter("/*")
//实现Filter接口
public class guolvqi implements Filter {
    @Override
    //这个方法在过滤器初始化时由容器调用
    //它通常用于执行一次性设置,例如加载配置文件或数据库连接等。
    //在这个例子中,它只是打印一条消息表明过滤器已经被初始化。
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("过滤器初始化");
    }
//这个方法在容器卸载过滤器时调用。
//通常用于释放过滤器所占用的资源。
//在这个例子中,它只是打印一条消息表明过滤器已经被卸载。
    @Override
    public void destroy() {
        System.out.println("过滤器结束");
    }
//这是过滤器的核心方法,每当一个请求到达时都会被调用。
//在这个方法中,您可以编写实际的过滤逻辑,例如检查用户是否已经登录、修改请求或响应对象等。
//在这个例子中,它只是打印一条消息表明客户端发出了请求,然后通过里面的方法将请求传递给下一个目标
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("客户端发出请求");
        filterChain.doFilter(servletRequest,servletResponse);
    }
}

 需要注意的是@WebFilter(),用来区分哪些跳转请求要经过过滤器。

@WebFilter("/*")是指所有都拦截,

@WebFilter("/user")指只拦截@WebServlet("/user")的跳转,

 @WebFilter("/user/*")指拦截@WebServlet("/user/.....")下的所有跳转。

 

如果没有这个方法那么跳转就被拦截,有了就是跳转从这里路过;

跳转结果;

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值