zoukankan      html  css  js  c++  java
  • jsp+mysql的字符过滤器

    jsp+mysql项目里面,在和数据库交互的时候,总是出现乱码。这都是老生常谈的事情了。

    之前在那里放了一放,今天觉得还是尽早解决。用了一个过滤器。

    代码:

    package wang.util;
    
    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 EncodeFilter implements Filter {
        
        private String requestEncoding=""; 
        private String responseEncoding=""; 
    
        public void destroy() {
            // TODO Auto-generated method stub
            System.out.println("字符编码过滤器销毁!"); 
        }
    
        public void doFilter(ServletRequest request, ServletResponse response,    FilterChain filterChain) throws IOException, ServletException {
            // TODO Auto-generated method stub
             System.out.println("编码过滤器运行中。。。"); 
             request.setCharacterEncoding(requestEncoding);
             response.setContentType(responseEncoding);
             filterChain.doFilter(request, response);
            
        }
    
        public void init(FilterConfig arg0) throws ServletException {
            // TODO Auto-generated method stub
             System.out.println("字符编码过滤器初始化!"); 
             requestEncoding=arg0.getInitParameter("requestEncoding");
             responseEncoding=arg0.getInitParameter("responseEncoding");
        }
    
    }

    然后,web.xml配置一下

    <!-- 编码过滤器开始 -->  
     <filter> 
      <filter-name>filterEncoding</filter-name> 
      <filter-class>wang.util.EncodeFilter</filter-class> 
      <init-param> 
       <param-name>requestEncoding</param-name> 
       <param-value>utf-8</param-value> 
      </init-param> 
      <init-param> 
       <param-name>responseEncoding</param-name> 
       <param-value>text/html;charset=utf-8</param-value> 
      </init-param> 
     </filter> 
     <filter-mapping> 
      <filter-name>filterEncoding</filter-name> 
      <url-pattern>/*</url-pattern> 
     </filter-mapping> 
    <!-- 编码过滤器结束 -->
      

    怕再出问题,于是就再干脆点,连接的地方,也设定编码

    private String dbUrl="jdbc:mysql://localhost:3306/mycows?useUnicode=true&characterEncoding=utf-8";

    然后一切ok,也省的在每个servlet里面设置编码了。

  • 相关阅读:
    高斯消元
    逻辑运算符之优先级&&and、or
    康托展开
    关于bootstrap的双层遮罩问题
    写好页面在内网内访问
    swiper插件的一些坑
    第一篇博客
    poj 3415 Common Substrings
    poj 1509 Glass Beads
    poj 3260 The Fewest Coins
  • 原文地址:https://www.cnblogs.com/juepei/p/3523887.html
Copyright © 2011-2022 走看看