java 웹 필터 처리 부호

2448 단어 javaweb뒤죽박죽
저희가 servlet 페이지에서 프론트 데스크톱의 데이터를 읽을 때 자주 디코딩 문제가 발생합니다.
자신은 매번 servlet에서 사용해야 한다

String encoding="utf-8"; 
request.setCharacterEncoding(enconding); 
response.setCharacterEncoding(enconding); 
인코딩 변환을 하는 것은 매우 번거롭다
그래서 필터를 사용하면 이런 중복된 작업을 피할 수 있다
web.xml 구성

<filter> 
 <filter-name>encodingFilter</filter-name> 
 <filter-class>com.scx.filter.Filter</filter-class> 
 <!--   --> 
 <init-param> 
  <param-name>encoding</param-name> 
  <param-value>utf-8</param-value> 
 </init-param> 
 </filter> 
 <!-- filter  --> 
 <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{ 
  //  
  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; 
  } 
} 
이렇게 하면 servlet에서 읽은 데이터가 혼란스러워지지 않아요.
이상은 본문의 전체 내용입니다. 본고의 내용이 여러분의 학습이나 업무에 일정한 도움을 줄 수 있는 동시에 저희를 많이 지지해 주시기 바랍니다!

좋은 웹페이지 즐겨찾기