小编给大家分享一下实现java过滤器的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
过滤器也称之为过滤器,它是Servlet技术中最激动人心的技术之一,网页开发人员通过过滤器技术,对WEB服务器管理的所有网络资源:例如Jsp、Servlet、静态图片文件或静态html文件等进行拦截,从而实现一些特殊的功能,例如实现URL级别的权限访问控制,过滤敏感词汇,压缩响应信息等一些高级功能。
<强>那么它是如何实现的呢? 强>
编写一个过滤器的类实现过滤器接口
实现接口中尚未实现的方法(着重实现的doFilter方法)
在WEB . xml中进行配置(主要是配置要对哪些资源进行过滤)
<强>它的工作原理? 强>
过滤器接口中有一个的doFilter方法,当我们编写好过滤器,并配置对哪个网络资源进行拦截后,WEB服务器每次在调用网络资源的服务方法之前,都会先调用一下过滤器的doFilter方法,因此,
<强>在该方法内编写代码可达到如下目的:强>
调用目标资源之前,让一段代码执行。
是否调用目标资源(即是否让用户访问网络资源)。
调用目标资源之后,让一段代码执行。
WEB服务器在调doFilter方用法时,会传递一个filterChain对象进来,filterChain对象是过滤器接口中最重要的一个对象,它也提供了一个
的doFilter方法,开发人员可以根据需求决定是否调用此方法,调用该方法,则WEB服务器就会调用网络资源的服务方法,即网络资源就会被访问,否则网络资源不会被访问。
<>强过滤器范例:强>
进口java.io.IOException; 进口javax.servlet.Filter; 进口javax.servlet.FilterChain; 进口javax.servlet.FilterConfig; 进口javax.servlet.ServletException; 与javax . servlet . servletrequest进口; 进口javax.servlet.ServletResponse;/* * * @author yangcq * @description过滤器过滤的工作原理 */公共类FilterTest实现滤波器{ 公共空间摧毁(){ System.out.println(“- - - - -过滤器销毁——“); } doFilter (ServletRequest公共无效请求,ServletResponse响应,FilterChain FilterChain)抛出IOException, ServletException {//对请求,响应进行一些预处理 request.setCharacterEncoding (“UTF-8"); response.setCharacterEncoding (“UTF-8"); response.setContentType (“text/html; charset=UTF-8"); System.out.println(“——调用服务之前执行一段代码- - - - -“); filterChain。doFilter(请求、响应);//执行目标资源,放行 System.out.println(“——调用服务之后执行一段代码- - - - -“); } 公共空init (FilterConfig arg0)抛出ServletException { System.out.println(“- - - - -过滤器初始化——“); } }
<>强在网络。xml中配置过滤器:强>
& lt; ?xml version=?.0”;编码=癠TF-8" ?比;=& lt; web版本“3.0”; xmlns=癶ttp://java.sun.com/xml/ns/javaee" xmlns: xsi=癶ttp://www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation=? http://java.sun.com/xml/ns/javaee ,http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"的在 & lt; display-name> & lt;/display-name> & lt; welcome-file-list> & lt; welcome-file> index.jsp & lt;/welcome-file-list> & lt; !——配置过滤器——比; & lt; filter> & lt; filter-name> FilterTest & lt; filter-class> com.yangcq.filter.FilterTest & lt;/filter> & lt; !——映射过滤器——比; & lt; filter-mapping> & lt; filter-name> FilterTest & lt; !——“/*”表示拦截所有的请求——比; & lt; url-pattern>/* & lt;/url-pattern> & lt;/filter-mapping> & lt;/web-app>
以上是实现java过滤器的方法的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!