1、概述
(1)概念
springmvc的处理器拦截器类似于servlet中的过滤器filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器(必须实现HandlerInterceptor)来实现特定的功能
(2)过滤器与拦截器
拦截器是AOP思想的具体应用。
过滤器:
servlet规范的一部分,任何javaweb工程都可以使用,在url-pattern中配置了/*之后,可以对所有要访问的资源进行拦截
拦截器:
拦截器是springmvc框架自己的,只有使用了springmvc框架的工程才能使用,拦截器只会拦截访问的控制器方法,如果访问的是jsp/html/css/images是不会进行拦截的
2、拦截器演示
(1)在web.xml中对前端控制器和中文乱码的处理进行配置:
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:applicationContext.xml
1
springmvc
/
EncodingFilter
pers.zhb.filter.EncodingFilter
encoding
utf-8
EncodingFilter
/*
书写过滤器:
public class EncodingFilter implementsFilter {public void init(FilterConfig filterConfig) throwsServletException {
}public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throwsIOException, ServletException {
servletRequest.setCharacterEncoding("utf-8");
servletResponse.setCharacterEncoding("utf-8");
filterChain.doFilter(servletRequest,servletResponse);
}public v