本文共 1841 字,大约阅读时间需要 6 分钟。
Filter实际上就是对web资源进行拦截,做一些处理后交给Servlet处理,相当于在客户端和服务端资源文件之间加了一层过滤网。在过滤器种经过逻辑判断将不符合要求的资源过滤掉。一般情况下是对请求request的过滤,当然也可以对相应进行过滤
原理图:
过滤器的一般应用场景:①编写Java类实现Filter接口,实现doFilter方法
package com.muhan.Filter;import javax.servlet.*;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;public class myFilter implements Filter { //过滤器初始化方法 @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println("过滤器初始化"); } //主要业务逻辑 @Override public void doFilter(ServletRequest req, ServletResponse resp, FilterChain filterChain) throws IOException, ServletException { //把ServletRequest强转成HttpServletRequest HttpServletRequest request = (HttpServletRequest) req; //把ServletResponse强转成HttpServletResponse HttpServletResponse response = (HttpServletResponse) resp; //设定字符编码 request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); System.out.println("myFilter执行前"); filterChain.doFilter(request, response); System.out.println("myFilter执行后"); } @Override public void destroy() { System.out.println("过滤器销毁了"); }}
②在web.xml中配置Filter
myFilter01 com.muhan.Filter.myFilter myFilter01 /*
转载地址:http://koiwi.baihongyu.com/