JSP解決中文亂碼問題

來源:互聯網
上載者:User
一、程式說明
  1.資料庫教程:mysql教程
  2.開發環境:tomcat7.0+windows7+myeclips教程e9.0
  3.解決問題:解決jsp教程中文亂碼問題
二、基本流程
  
三、運行介面
  1.使用者註冊介面
  
  2.JQuery表單驗證
  
  3.提交post資訊
  
  4.資料庫資訊
  
四、程式的主要代碼
  1.字元過濾器(CharacterFilter.java)
  
1 public class CharacterFilter implements Filter {
2 String encoding = null; // 聲明字元編碼
3   @Override
4 public void destroy() {
5 encoding = null; //銷毀過濾器對象時,同時將字元編碼值變為空白
6   }
7 @Override
8 public void doFilter(ServletRequest request, ServletResponse response,
9 FilterChain chain) throws IOException, ServletException {
10 if(encoding != null){
11 request.setCharacterEncoding(encoding); // 設定request的編碼格式
12   response.setContentType("text/html; charset="+encoding); // 設定response字元編碼
13   }
14 chain.doFilter(request, response);
15 }
16 @Override
17 public void init(FilterConfig filterConfig) throws ServletException {
18 encoding = filterConfig.getInitParameter("encoding"); // 擷取初始化參數
19   }
20 }
  2.web.xml配置
  
1 <filter>
2 <filter-name>CharacterFilter</filter-name>
3 <filter-class>com.swyma.md5.filter.CharacterFilter</filter-class>
4 <init-param>
5 <param-name>encoding</param-name>
6 <param-value>UTF-8</param-value>
7 </init-param>
8 </filter>
9 <filter-mapping>
10 <filter-name>CharacterFilter</filter-name>
11 <url-pattern>/*</url-pattern>
12 </filter-mapping>

3.資料庫連接類(請特別注意下url)

  
1 public class DBCon {
2 private static Connection conn = null;
3 public static Connection getConn(){
4 try {
5 Class.forName("com.mysql.jdbc.Driver"); //載入資料庫連接驅動
6   String user="root"; //使用者名稱
7   String pwd="123"; //密碼
8 String url = "jdbc:mysql://localhost:3306/md5?useUnicode=true&characterEncoding=utf-8"; //資料庫連接url
9 conn=DriverManager.getConnection(url, user, pwd);//擷取串連
10 } catch (Exception e) {
11 e.printStackTrace();
12 }
13 return conn;
14 }
15 }
  4.資料庫mysql
  
DROP TABLE IF EXISTS `md5`.`tb_user`;
CREATE TABLE `md5`.`tb_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
`pwd` varchar(40) NOT NULL,
`sex` varchar(5) NOT NULL,
`age` int(11) NOT NULL,
`createTime` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 五、個人總結
  1.首先我想說說我的一些感悟吧:
    其實這個中文亂碼問題早在去年暑假學jsp的時候就解決過,但是由於沒有及時總結,程式又不知道什麼給我刪除掉了,結果呢,我花了一天多時間才把它重新整回來,代
  價太慘了,所以總結很重要。如果朋友你看到,請現在開始學會總結吧。
  2.這個是簡單的jsp解決中文亂碼問題。
  3.解決關鍵:一是CharacterFilter.java,字元過濾器,將jsp頁面編碼統一為utf-8;
        二是DBCon.java中url的useUnicode=true&characterEncoding=utf-8這句話,一定要加上,不然也一樣會出現亂碼的。
  4.解決過程:
    1)一開始我只是加了個字元過濾器,然後以為就可以了,然後不管我怎麼調試,結果還是亂碼。然後我在網上找了些材料,感覺characterFilter又不會錯啊,但是事與願
  違啊,無奈又得一步步的調試。
    2)可能是由於自己的搜尋能力不強,我查了好多資料,但是基本上都是加個CharacterFilter就可以的,但是我這系統它就是不行。
    3)最後就靠自己的回憶吧,想起了這個url,有點幸運解決問題吧。
  5.問題是解決了,但是還是感覺不是很完善一樣,因為我在部署的時候有時會出現java.lang.NoClassDefFoundError: Filter這個錯誤,我就覺得奇怪了。如果有網友和我遇到的問題一樣或者有好的解決方案,希望能指導一下
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.