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里面设置编码了。

原文地址:https://www.cnblogs.com/juepei/p/3523887.html