引荐课程:Java教程。
这只是一个简朴的例子,固然,过滤器那末壮大,它的功用也不可能范围于此,它不仅能预处 理数据,只假如发送过来的要求它都是可以预处置惩罚的,同时,它还可以对服务器返回的相应举行预处置惩罚,如许,大大减轻了服务器的压力。比方,完成URL级别的 权限接见掌握、过滤敏感辞汇、紧缩相应信息等一些高等功用。下面来细致引见一下过滤器。
Filter 手艺是servlet 2.3 新增添的功用。servlet2.3是sun公司于2000年10月宣布的,它的开发者包含很多个人和公司整体,充分体现了sun公司所提倡的代码开放性准绳。在浩瀚参与者的通力合作下,servlet2.3比以往功用都壮大了很多,而且机能也有了大幅进步。
1.观点
过滤作用,对从客户端向服务器端发送的要求举行过滤,也可以对服务器端返回的相应举行处置惩罚。它运用户可以转变一个request和修正一个 response.。Filter 不是一个servlet,它不能发作一个response,然则它可以在一个request抵达servlet之前预处置惩罚request,也可以在 response脱离servlet时处置惩罚response。换句话说,filter实际上是客户端与servlet中心的一个通报者,而且它可以对要通报 的东西举行修正。
注重:过滤器是用来阻拦要乞降相应的,不能发作相应,而servlet是用来处置惩罚要求并发作相应的。
2.实用场所
完成URL级别的权限接见掌握,过滤敏感辞汇,紧缩相应信息等。
3.过滤器怎样完成阻拦
当客户端发作要求后,在HttpServletRequest 抵达Servlet 之前,过滤器阻拦客户的HttpServletRequest 。 根据须要搜检HttpServletRequest ,也可以修正HttpServletRequest 头和数据。 在过滤器中挪用doFilter要领,对要求放行。要求抵达Servlet后,对要求举行处置惩罚并发作HttpServletResponse发送给客户端。在HttpServletResponse 抵达客户端之前,过滤器阻拦HttpServletResponse 。 根据须要搜检HttpServletResponse ,可以修正HttpServletResponse 头和数据。末了,HttpServletResponse抵达客户端。
4.Filter接口
Servlet API供应了一个Filter接口,编写的过滤器必需完成该接口。
5.Filter的生命周期
(1)Filter接口中有三个主要的要领。
init()要领:初始化参数,在建立Filter时自动挪用。当我们须要设置初始化参数的时刻,可以写到该要领中。doFilter()要领:阻拦到要实行的要求时,doFilter就会实行。这内里写我们对要乞降相应的预处置惩罚。destroy()要领:在烧毁Filter时自动挪用。
(2)Filter的生命周期
Filter的建立和烧毁由web服务器掌握。
服务器启动的时刻,web服务器建立Filter的实例对象,并挪用其init要领,完成对象的初始化功用。filter对象只会建立一次,init要领也只会实行一次。阻拦到要求时,实行doFilter要领。可以实行屡次。服务器封闭时,web服务器烧毁Filter的实例对象。
6.Filter对象——FilterConfig
用 户在设置filter时,可以运用<init-param>为filter设置一些初始化参数,当web容器实例化Filter对象,挪用其 init要领时,会把封装了filter初始化参数的filterConfig对象通报进来。因而开发人员在编写filter时,经由过程 filterConfig对象的要领,便可取得:
String getFilterName():获得filter的称号。String getInitParameter(String name): 返回在布置形貌中指定称号的初始化参数的值。假如不存在返回null.Enumeration getInitParameterNames():返回过滤器的一切初始化参数的名字的罗列鸠合。public ServletContext getServletContext():返回Servlet上下文对象的援用。
7.过滤器链——FilterChain
一组过滤器对某些web资本举行阻拦,那末这组过滤器就称为过滤器链。过滤器的实行递次和<filter-mapping>有关(谁在前先执谁)。
以上就是filter是什么意义的细致内容,更多请关注ki4网别的相干文章!