关于Filter过滤器的@WebFilter注解

以前我们需要通过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");
	}

}

猜你喜欢

转载自blog.csdn.net/qq_40209921/article/details/79997597
今日推荐