是整个业务中单独抽取出来的一层,用来过滤请求以及响应中的一些信息,比如字符设置,可以通过过滤器统一完成

    1. import javax.servlet.*; //要导入这个包
    2. //1. 过滤器中的所有代码在过滤特定请求时都会执行
    3. //2. 必须要让过滤器继续通行 filterChain.doFilter(servletRequest,servletResponse);
    4. public class SetCharacter implements Filter {
    5. //随着服务器启动一起执行
    6. public void init(FilterConfig filterConfig) throws ServletException {
    7. System.out.println("SetCharacter初始化");
    8. }
    9. public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    10. servletRequest.setCharacterEncoding("utf-8");
    11. servletResponse.setCharacterEncoding("utf-8");
    12. servletResponse.setContentType("text/html;charset=utf-8");
    13. System.out.println("SetCharacter执行前");
    14. filterChain.doFilter(servletRequest,servletResponse);//再次调用doFilter方法,如果不执行就会被销毁,因为可能有多种不同功能的过滤器来参与过滤
    15. System.out.println("SetCharacter执行后");
    16. }
    17. //随着服务器停止一起销毁/停止
    18. public void destroy() {
    19. System.out.println("SetCharacter销毁");
    20. }
    21. }
    1. ⌨配置web.xml
    2. <filter>
    3. <filter-name>Filter1</filter-name>
    4. <!-- 填写过滤器所在目录 -->
    5. <filter-class>com.jack.Filter.SetCharacter</filter-class>
    6. </filter>
    7. <filter-mapping>
    8. <filter-name>Filter1</filter-name>
    9. <!-- 填写过滤器要过滤哪些路径 -->
    10. <url-pattern>/url</url-pattern>
    11. </filter-mapping>