1. 程式人生 > >javaWeb開發解決中文亂碼問題(終身解決)

javaWeb開發解決中文亂碼問題(終身解決)

說明:

1、web.xml新增過濾器

<filter>
   <filter-name>Chinese</filter-name>
   <filter-class>com.tbs.common.util.ChineseUtil</filter-class>
   <init-param>
      <param-name>encode</param-name>
      <param-value>UTF-8</param-value>
   </init-param>
</filter>

<filter-mapping>
   <filter-name>Chinese</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

2、新增Filter類

package com.tbs.common.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;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ChineseUtil implements Filter{
   private String Chinese;
   public void destroy() {
      // TODO 自動生成的方法存根
   }

   public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
         throws IOException, ServletException {
      // TODO 自動生成的方法存根
      HttpServletRequest request = (HttpServletRequest)arg0;
      HttpServletResponse response = (HttpServletResponse)arg1;
      request.setCharacterEncoding(Chinese);
      response.setCharacterEncoding(Chinese);
      arg2.doFilter(arg0, arg1);
   }

   public void init(FilterConfig arg0) throws ServletException {
      // TODO 自動生成的方法存根
      Chinese = arg0.getInitParameter("encode");
   }

}

3、連線資料庫驅動語句:

db.url = jdbc:mysql://localhost:3306/tbs?useUnicode=true&amp;characterEncoding=UTF-8"

4、修改tomcat編碼

找到tomcat安裝目錄,找到bin目錄下的service.xml

修改:

<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" URIEncoding="UTF-8" />