IDEA学习记录14--Servlet过滤器Filter

1、生命周期

在tomcat初始化时,就加载init方法,执行拦截时使用doFilter方法,tomcat把容器销毁时就执行destroy方法。
只要命中过滤规则就触发doFilter方法,可根据条件判断是否调用chain.doFilter方法,即是否让目标资源执行。
在这里插入图片描述

2、 只要访问cookieServlet,就会被filter进行拦截

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

3、拦截所有请求(用通配符)

在这里插入图片描述

4、参数配置

在这里插入图片描述
参数可以通过配置传进来,无需写死。使用filterConfig可以帮忙拿到过滤器基本信息。用debug可看出每一步所获得的值。
在这里插入图片描述

5、用户访问个人页面拦截

1)、LoginServlet
在这里插入图片描述
2)、LoginFilter
在这里插入图片描述
在这里插入图片描述
3)、LoginOutServlet
在这里插入图片描述
4)、login.jsp
在这里插入图片描述
5)、user.jsp
在这里插入图片描述
6)、
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
此时再访问user.jsp则不会有问题,因为session里面已有用户信息。若此时点击“退出”后再访问此jsp,则会返回登录界面,并显示“非法访问,请登录”:
在这里插入图片描述

7)、逻辑过程:
LoginFilter:拦截user文件夹下的信息、LoginServlet信息。

首先访问user.jsp,命中LoginFilter。由于session中没有用户信息,所以跳转到login.jsp。
用户输入登录信息后,触发LoginServlet。若用户名与密码正确,则在session里面存入loginuser信息,跳转到user.jsp。否则返回login.jsp页面。
session中有用户登录信息后,则用户可以随时访问user.jsp:
在这里插入图片描述
点击“退出”后,触发LoginOutServlet,session失效,就跳转到login.jsp。

8)、优点
在filter里面统一编写,就不用在每个servlet里面判断用户登录信息了。

9)、注意
在这里插入图片描述
有多个filter时设置优先级,或者把其他filter里面的参数配置注解掉,防止filter互相命中。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值