过滤器有哪些作用和用法?(过滤器有哪些作用和用法?)
2023-08-13 13:35:05
过滤器是一个驻留在服务器端的Web组件,它可以截取客户端和服务器之间的请求与响应信息,并对这些信息进行过滤。
当Web容器接受到一个对资源的请求时:
它将判断是否有过滤器与这个资源相关联。如果有,那么容器将把请求交给过滤器进行处理。在过滤器中,你可以改变请求的内容,或者重新设置请求的报头信息,然后再将请求发送给目标资源。3. 当目标资源对请求作出响应时候,容器同样会将响应先转发给过滤器。
在过滤器中你可以对响应的内容进行转换,然后再将响应发送到客户端。常见的过滤器用途主要包括:对用户请求进行统一认证、对用户的访问请求进行记录和审核、对用户发送的数据进行过滤或替换、转换图象格式、对响应内容进行压缩以减少传输量、对请求或响应进行加解密处理、触发资源访问事件、对XML的输出应用XSLT等。
和过滤器相关的接口主要有:Filter、FilterConfig和FilterChain。
示例:
示例:
public class RequestFilter implements Filter {
@Override
public void init(FilterConfig config) throws ServletException {
}
@Override
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
String uri = request.getRequestURI();
HttpSession session = request.getSession(false);
if (session == null ) {
System.out.println("no session, filtered");
response.sendRedirect(request.getContextPath() + "/login");
return;
}
String userInfo = (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 {
}
}
@Override
public void destroy() {
}
}
《JAVA面试机经基础篇》 郭屹老师著
欢迎关注 爪哇河谷 同专栏名公众号
欢迎关注我的其他专栏
什么是编程zhuanlan.zhihu.com/c_1278707693897977856

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

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