本帖最后由 Do1 于 2019-11-23 00:36 编辑
Filter是一个在服务器的有过滤功能的类,当浏览器的请求发送过来时,首先会传到配置好的Fliter类中,Fliter中的doFilter方法如果没有使用chain方法的话,请求就到不到Servlet Jsp html中,如果使用了chain放行那么就会把请求放行然后服务器的处理完请求数据后再把响应给浏览器传过去,使用Filter时要实现一个Filter的接口,实现3个方法,销毁 创建 和拦截
Filter应用场景:
因为Filter也是在服务器内部的,所以这个Filter类的session req res等等都是和Servlet Jsp这些共享的,浏览器传过来的req要经过它,它也可以调用这些对象,所以Filter有点像是一个信息处理(比如编码转换)的小Servlet然后转发给主Servlet
1:编码处理,可以在Filter类先接收到req请求中的文本内容,统一进行编码处理后类似于转发形式的再传球给Servlet JSP等等应用中
2.IP地址过滤,因为req请求中携带有ip地址,因此可以指定ip段或者指定Ip放行
3.自动登录:自动登录是课堂上详细讲解的案例,它分为3个步骤
1.调用session 和requset对象 因为session是会话级别的浏览器每次请求cookie中都会携带sessionid
所以先判断session中的指定key存不存在,不存在的话去判断cookie中指定key存不存在,出于安全考虑对cookie进行用户名的二次判定,因为如果cookie被篡改了,那么你没有记住用户名的话也会自动登录这样的话,网页中的页面都拦截不了自动放行,在非管理人员情况下进入网站可能会对后台管理等数据造成威胁
|