java web filter handles messy code

  • 2020-06-19 10:19:32
  • OfStack

When we read the foreground data on servlet pages, we often have the problem of garbled code

You use it in servlet every time


String encoding="utf-8"; 
request.setCharacterEncoding(enconding); 
response.setCharacterEncoding(enconding); 

The conversion to code can be cumbersome

So using filters we can avoid this duplication of effort

web. xml configuration


<filter> 
 <filter-name>encodingFilter</filter-name> 
 <filter-class>com.scx.filter.Filter</filter-class> 
 <!--  Initialization parameter  --> 
 <init-param> 
  <param-name>encoding</param-name> 
  <param-value>utf-8</param-value> 
 </init-param> 
 </filter> 
 <!-- filter The mapping relationship  --> 
 <filter-mapping> 
 <filter-name>encodingFilter</filter-name> 
 <url-pattern>/*</url-pattern> 
 </filter-mapping> 

Filter


package com.scx.filter; 
import java.io.IOException; 
import javax.servlet.FilterChain; 
import javax.servlet.FilterConfig; 
import javax.servlet.ServletException; 
import javax.servlet.ServletRequest; 
import javax.servlet.ServletResponse; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class Filter implements javax.servlet.Filter{ 
  // Read the filter configuration file  
  private FilterConfig config; 
  public void destroy() { 
    // TODO Auto-generated method stub 
  } 
  public void doFilter(ServletRequest arg0, ServletResponse arg1, 
      FilterChain chain) throws IOException, ServletException { 
    // TODO Auto-generated method stub 
    HttpServletRequest request=(HttpServletRequest) arg0; 
    HttpServletResponse response=(HttpServletResponse) arg1; 
    String encoding=config.getInitParameter("encoding"); 
    if(encoding==null||"".equals(encoding)){ 
      encoding="utf-8"; 
    } 
    request.setCharacterEncoding(encoding); 
    response.setCharacterEncoding(encoding); 
    chain.doFilter(request, response); 
  } 
  public void init(FilterConfig arg0) throws ServletException { 
    // TODO Auto-generated method stub 
    config=arg0; 
  } 
} 

In this way, the data read in servlet will not appear disorderly code situation


Related articles: