request.setCharacterEncoding("utf-8");
問題即解決。
第二次是用[b]GET[/b]提交數據,servlet接收數據,因爲在同一個表單中,有文件上傳,也有一般的數據,於是用到了ajaxFileUpload上傳插件,文件上傳用的是POST提交方式,而一般的數據用的是GET提交。同樣是在UTF-8的JSP頁面中,同樣中文出現亂碼。但這一次沒有上一次幸運了。在網上查了很多資料,但還是沒有解決,有的是修改JSP頁面編碼,修改成GBK或gb2312,有的是修改tomcat的服務器接收數據的編碼。但有一點提醒了我,tomcat默認接收數據的編碼是ISO-8859-1,於是就想到了將字符串轉換編碼。
new String(s.getBytes("ISO-8859-1"), "utf-8");
問題解決。只不過要麻煩點,每個涉及到中文的參數值都要轉換編碼,不過問題還是解決了。