javaWeb開發解決中文亂碼問題(終身解決)
阿新 • • 發佈:2018-12-10
說明:
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&characterEncoding=UTF-8"
4、修改tomcat編碼
找到tomcat安裝目錄,找到bin目錄下的service.xml
修改:
<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" URIEncoding="UTF-8" />