關於Filter過濾器的@WebFilter註解
阿新 • • 發佈:2018-12-31
以前我們需要通過XML對過濾器進行配置和初始化值:如(系統字元編碼需要進行初始化)
<filter> <!-- 配置filter --> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>cn.lcp.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>charset</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
現在我們可以直接通過過濾器過濾器的@WebFilter註解進行配置和值的初始化:
@WebFilter (filterName="character",urlPatterns="/*", initParams= {@WebInitParam(name="encoding",value="utf-8")}) public class characterFilter implements Filter { String encoding; public void destroy() { encoding = null; } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) resp; if(encoding == null) { request.setCharacterEncoding(encoding); response.setCharacterEncoding(encoding); response.setContentType("text/html"+encoding); chain.doFilter(request, response); } } public void init(FilterConfig fConfig) throws ServletException { encoding = fConfig.getInitParameter("encoding"); } }