当前位置:Gxlcms > 数据库问题 > jsp页面写入中文到mysql时出现了乱码(转)

jsp页面写入中文到mysql时出现了乱码(转)

时间:2021-07-01 10:21:17 帮助过:8人阅读

  • 如果你不是在jsp页面里直接处理form,也是和我一样采用servlet来处理form的话,那么在还要增加一个过滤器,这主要是因为采用的是tomcat的web发布器,如果用resin的话,不会有这样的问题,这也是我后面花了很长时间的原因所在。 过虑器 SetCharacterEncodingFilter.java  的代码: package peom;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; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper;

     

    public class SetCharacterEncodingFilter implements Filter {     class Request extends HttpServletRequestWrapper     {         public Request(HttpServletRequest request) {             super(request);         }

            public String toChi(String input) {             try {                 byte[] bytes = input.getBytes(”ISO8859-1″);                 return new String(bytes, “utf-8″);             } catch (Exception ex) {             }             return null;         }

            private HttpServletRequest getHttpServletRequest()         {             return (HttpServletRequest) super.getRequest();         }

            public String getParameter(String name)         {             return             toChi(getHttpServletRequest().getParameter(name));         }         public String[] getParameterValues(String name)         {             String values[] =getHttpServletRequest().getParameterValues(name);             if (values != null) {                 for (int i = 0; i < values.length; i++) {                     values[i] = toChi(values[i]);                 }             }             return values;         }     }

        public void destroy() {     }     public void doFilter(ServletRequest request, ServletResponse     response,FilterChain chain) throws IOException, ServletException {         HttpServletRequest httpreq = (HttpServletRequest) request;

            if (httpreq.getMethod().equals(”POST”)) {

                request.setCharacterEncoding(”utf-8″);

            } else {             request = new Request(httpreq);         }

            chain.doFilter(request, response);     }

        public void init(FilterConfig filterConfig) throws     ServletException {     }   }

    然后在WEB-INF目录下的web.xml文件,配置下过虑器,

    <filter>    <filter-name>SetCharacterEncodingFilter</filter-name>    <filter-class>peom.SetCharacterEncodingFilter</filter-class>  </filter>  <filter-mapping>    <filter-name>SetCharacterEncodingFilter</filter-name>    <url-pattern>/*</url-pattern>  </filter-mapping>

    这里要注意的是:路径、代码尽量放在前面,最好是<web-app 的后面

  • 完成遇到类型问题处理完,就觉得挺简单,在问题中时还是要多点参考参考
  • 人气教程排行