过滤器是Servlet的高级特性之一,也别把它想得那么高深,只不过是实现Filter接口的Java类罢了半岛电竞下载!
从上面的图我们可以发现,当浏览器发送请求给服务器的时候,先执行过滤器,然后才访问Web的资源。服务器响应Response,从Web资源抵达浏览器之前,也会途径过滤器。。
我们很容易发现,过滤器可以比喻成一张滤网。我们想想现实中的滤网可以做什么:在泡茶的时候,过滤掉茶叶。那滤网是怎么过滤茶叶的呢?规定大小的网孔,只要网孔比茶叶小,就可以实现过滤了!
引申在Web容器中,过滤器可以做:过滤一些敏感的字符串【规定不能出现敏感字符串】、避免中文乱码【规定Web资源都使用UTF-8编码】、权限验证【规定只有带Session或Cookie的浏览器,才能访问web资源】等等等,过滤器的作用非常大,只要发挥想象就可以有意想不到的效果
也就是说:当需要限制用户访问某些资源时、在处理请求时提前处理某些资源、服务器响应的内容对其进行处理再返回、我们就是用过滤器来完成的!
也就是说:如果我每次接受客户端带过来的中文数据,在Serlvet中都要设定编码半岛电竞下载。这样代码的重复率太高了!!!!
有过滤器的情况就不一样了:只要我在过滤器中指定了编码,半岛电竞下载可以使全站的Web资源都是使用该编码,并且重用性是非常理想的半岛电竞下载!
只要Java类实现了Filter接口就可以称为过滤器!Filter接口的方法也十分简单:
其中init()和destory()方法就不用多说了,他俩跟Servlet是一样的。只有在Web服务器加载和销毁的时候被执行,只会被执行一次!
FilterChain是一个接口,里面又定义了doFilter()方法。这究竟是怎么回事啊??????
我们可以这样理解:过滤器不单单只有一个,那么我们怎么管理这些过滤器呢?在Java中就使用了链式结构。把所有的过滤器都放在FilterChain里边过滤器,如果符合条件,就执行下一个过滤器(如果没有过滤器了,就执行目标资源)。
上面的话好像有点拗口,我们可以想象生活的例子:现在我想在茶杯上能过滤出石头和茶叶出来。半岛电竞下载石头在一层,茶叶在一层。所以茶杯的过滤装置应该有两层滤网。半岛电竞下载这个过滤装置就是FilterChain,过滤石头的滤网和过滤茶叶的滤网就是Filter。在石头滤网中,茶叶是属于下一层的,就把茶叶放行,让茶叶的滤网过滤茶叶。过滤完茶叶了,剩下的就是茶(茶就可以比喻成我们的目标资源)
一个Filter拦截的资源可通过两种方式来指定:Servlet 名称和资源访问的请求路径
上面已经说过了,过滤器的doFilter()方法是极其重要的,FilterChain接口是代表着所有的Filter,FilterChain中的doFilter()方法决定着是否放行下一个过滤器执行(如果没有过滤器了半岛电竞下载,就执行目标资源)。
我们发现test.jsp(我们的目标资源)成功访问到了,并且在服务器上也打印了字符串!
test.jsp页面并没有任何的输出(也就是说,并没有访问到jsp页面)半岛电竞下载。
直接看下面的代码。我们已经知道了”准备放行“会被打印在控制台上和test.jsp页面也能被访问得到,但“放行完成“会不会打印在控制台上呢?
注意,它的完整流程顺序是这样的:客户端发送http请求到Web服务器上,Web服务器执行过滤器,执行到”准备放行“时,就把字符串输出到控制台上,接着执行doFilter()方法,Web服务器发现没有过滤器了,就执行目标资源(也就是test.jsp)。目标资源执行完后,回到过滤器上,继续执行代码,然后输出”放行完成“
注意:过滤器之间的执行顺序看在web.xml文件中mapping的先后顺序的,如果放在前面就先执行,放在后面就后执行!如果是通过注解的方式配置,就比较urlPatterns的字符串优先级
我们直接把用户名和密码都放在了Cookie中,这是明文的。懂点编程的人就会知道你的账号了。
半岛电竞网站半岛电竞网站半岛电竞网站其实在今年5月,我们一家搬到了新小区住,到现在正好快六个月了。为了日常饮水方便,我...
振动压实技术的首创品牌,戴纳派克始终致力于将最新的前沿技术应用于一代又一代的高科技压实产品。近日,戴纳派克又一重量级新...
流放之路过滤器可以帮助过滤器网站和应用程序免受垃圾邮件,恶意软件和恶意活动的影响。可以通过以下步骤使用这个过滤器:1....
参展首届进博会,武田制药只是一家中等体量的跨国制药企业,如今已跻身跨国药企在华业绩前十行列,累计在华投资超过30亿元;...
半岛电竞下载半岛电竞下载在无尽的黑暗中,闪烁着亿万颗璀璨的星辰,它们如同浩瀚的诗篇,诉说着宇宙的神秘与辽阔。作为人类,...
半岛电竞下载立冬已至,寒意渐浓。温馨提示,冬季低温易损坏卫浴设施,如家中无人,需对产品进行排水及保暖处理。 如产品内...