过滤器有哪些作用和用法?(过滤器有何作用?对它的一般要求是什么?)

2023-03-23 04:52:54

 

过滤器是一个驻留在服务器端的Web组件,它可以截取客户端和服务器之间的请求与响应信息,并对这些信息进行过滤当Web容器接受到一个对资源的请求时:它将判断是否有过滤器与这个资源相关联如果有,那么容器将把请求交给过滤器进行处理。

在过滤器中,你可以改变请求的内容,或者重新设置请求的报头信息,然后再将请求发送给目标资源3. 当目标资源对请求作出响应时候,容器同样会将响应先转发给过滤器在过滤器中你可以对响应的内容进行转换,然后再将响应发送到客户端。

常见的过滤器用途主要包括:对用户请求进行统一认证、对用户的访问请求进行记录和审核、对用户发送的数据进行过滤或替换、转换图象格式、对响应内容进行压缩以减少传输量、对请求或响应进行加解密处理、触发资源访问事件、对XML的输出应用XSLT等。

和过滤器相关的接口主要有:Filter、FilterConfig和FilterChain示例:示例:publicclassRequestFilterimplementsFilter{@Overridepublic

voidinit(FilterConfigconfig)throwsServletException{}@OverridepublicvoiddoFilter(ServletRequestreq,ServletResponse

resp,FilterChainchain)throwsIOException,ServletException{HttpServletRequestrequest=(HttpServletRequest

)req;HttpServletResponseresponse=(HttpServletResponse)resp;Stringuri=request.getRequestURI();HttpSession

session=request.getSession(false);if(session==null){System.out.println("no session, filtered");response

.sendRedirect(request.getContextPath()+"/login");return;}StringuserInfo=(String)session.getAttribute(

"userid");if(userInfo==null){System.out.println("no user, filtered");response.sendRedirect(request.getContextPath

()+"/login");return;}try{System.out.println("passed");chain.doFilter(req,resp);return;}catch(Exception

e){e.printStackTrace();}finally{}}@Overridepublicvoiddestroy(){}}《JAVA面试机经基础篇》 郭屹老师著欢迎关注 爪哇河谷 同专栏名公众号

欢迎关注我的其他专栏什么是编程​zhuanlan.zhihu.com/c_1278707693897977856

Java语言十五讲​zhuanlan.zhihu.com/c_1280506899734151168


以上就是关于《过滤器有哪些作用和用法?(过滤器有何作用?对它的一般要求是什么?)》的全部内容,本文网址:https://www.7ca.cn/baike/6958.shtml,如对您有帮助可以分享给好友,谢谢。
标签:
声明