虽然开发JavaWeb有几年了,但是对一些基本概念没有掌握。一些东西虽然都会用,但是具体原理还不清楚,用什么功能还很模糊。每次开发都知道就应该这样写,就是不知道为什么,有什么好处。开始深入学习Java的Filter与listener。
首先是Filter,Filter称为过滤器,是Servlet技术。下面是Filter接口,使用Filter必须实现该接口。它拦截了web服务器的所有资源。主要对用户的请求(HttpServletRequest)和回应(HttpServletResponse)进行处理。请求原理,即是在web容器和web资源之间增加一个过滤,所有的请求和回应先进过过滤处理再进行请求和回应。
public interface Filter {
public void init(FilterConfig filterConfig) throws ServletException;
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException;
public void destroy();
}
<filter> <filter-name>projectContextFilter</filter-name> <filter-class>com.pandaw.filter.ProjectContextFilter</filter-class> </filter> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>projectContextFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>