用struts提交表单到action在通过调用JDBC到oracle数据库, 输入的中文都是乱码,请高手指教!

解决方案 »

  1.   

    页面的编码和数据库的编码不统一。才造成的。
    建议加一个编码的过滤器。解决编码问题。新增过滤器类EncodingFilterimport java.io.IOException;
    import javax.servlet.*;public class EncodingFilter implements Filter {    private FilterConfig filterConfig = null;
        private String encoding = null;     @Override
        public void destroy() {
             filterConfig = null;
             encoding = null;
         }     @Override
        public void doFilter(ServletRequest request, ServletResponse response,
                 FilterChain filterChain) throws IOException, ServletException {
            if (request.getCharacterEncoding() == null) {
                if (encoding != null) {
                     request.setCharacterEncoding(encoding);
                 }
                 filterChain.doFilter(request, response);
             }
         }     @Override
        public void init(FilterConfig filterConfig) throws ServletException {
            this.filterConfig = filterConfig;
            this.encoding = filterConfig.getInitParameter("encoding");
         }
    }
    web.xml中加入  <filter>
          <filter-name>EncodingFilter</filter-name>
          <filter-class>EncodingFilter</filter-class>
          <init-param>
              <param-name>encoding</param-name>
              <param-value>UTF-8</param-value>
          </init-param>
      </filter>
      <filter-mapping>
          <filter-name>EncodingFilter</filter-name>
          <url-pattern>/*</url-pattern>
      </filter-mapping>
    jsp页面中设置pageEncoding="UTF-8" ,表单提交方法method="post"