Java J2EE 디코드 문제 해결 방법

2867 단어 JavaJ2EE뒤죽박죽
난호는 j2ee에서 비교적 흔히 볼 수 있는 문제이다.한두 가지 문제가 발생하면 new String(request.getParameter(xxx)을 사용할 수 있습니다.getBytes("ISO-8859-1"), "UTF-8")로 해결합니다.많은 경우에 필터를 사용하는 것이 가장 좋다.
필터는 단지 두 군데만 주의하면 된다. 클래스와 웹이다.xml
1. 웹에서.xml 위의 발표는 다음과 같습니다.

<fileter> 
  <!--   --> 
  <filter-name>SetCharsetEncodingFilter</filter-name> 
  <!--   --> 
  <filter-class>SetCharacter</filter-class> 
  <init-param> 
    <param-name>encoding</param-name> 
    <param-value>utf-8</param-value> 
  </init-param> 
  <filter-mapping> 
    <filter-name>SetCharsetEncodingFilter</filter-name> 
    <!--   --> 
    <url-pattern>/*</url-pattern> 
  </filter-mapping> 
</fileter> 
2, 필터 클래스

import java.io.IOException; 
 
import javax.servlet.Filter; 
import javax.servlet.FilterChain; 
import javax.servlet.FilterConfig; 
import javax.servlet.ServletException; 
import javax.servlet.ServletRequest; 
import javax.servlet.ServletResponse; 
 
public class SetCharacter implements Filter { 
  protected String encoding = null; 
  protected FilterConfig filterConfig = null; 
  protected boolean ignore = true; 
  public void init(FilterConfig arg0) throws ServletException { 
    this.encoding = arg0.getInitParameter("encoding"); 
    String value = arg0.getInitParameter("imnore"); 
    if (value == null) { 
      this.ignore = true; 
    } else if (value.equalsIgnoreCase("true")) { 
      this.ignore = true; 
    } else if (value.equalsIgnoreCase("yes")) { 
      this.ignore = true; 
    } 
  } 
 
  public void doFilter(ServletRequest arg0, ServletResponse arg1, 
      FilterChain arg2) throws IOException, ServletException { 
    if (ignore || (arg0.getCharacterEncoding() == null)) { 
      String encoding = selectEncoding(arg0); 
      if (encoding != null) 
        arg0.setCharacterEncoding(encoding); 
    } 
    arg2.doFilter(arg0, arg1); 
  } 
 
  private String selectEncoding(ServletRequest arg0) { 
    return (this.encoding); 
  } 
 
  public void destroy() { 
    this.encoding = null; 
    this.filterConfig = null; 
  } 
 
}
웹에서xml 파일에서 다음 구문은 맵을 정의하는 데 사용됩니다.
1. "/"로 시작하고 "/*"로 끝나는 것은 경로 매핑에 사용됩니다.
2. 접두어로 "*."처음에는 확장 맵을 만드는 데 사용됩니다.
3. "/"은 default servlet 맵을 정의하는 데 사용됩니다.
4. 나머지는 상세한 맵을 정의하는 데 쓰인다.예:/aa/bb/cc.action
이상은 바로 Java J2EE 디코딩 문제를 해결하는 사고방식입니다. 여러분에게 공유하고 비슷한 문제에 부딪히면 순조롭게 해결될 수 있기를 바랍니다.

좋은 웹페이지 즐겨찾기