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

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