對JSP頁面傳值中文亂碼的簡單解決方法_JSP教程
推薦:J2EE架構和過程1Java2企業版(J2EE)平臺由四個關鍵部分構成:規格說明、參考實現、兼容性測試套件和藍圖(BluePrint)計劃。藍圖描繪了分布式組件架構最好的實踐和設計指導方針。本文基于Rational統
源代碼,a.jsp往b.jsp傳值:
a.jsp頁面內容:
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
b.jsp頁面內容:
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%
String name=request.getParameter("name");
%>
<%=name%>
現象:中文亂碼,比如“??????”
解決方法如下:
方法一:
1. 在b.jsp中把pageEncoding="GB2312"改為pageEncoding="ISO8859-1"
雖然這樣b.jsp頁面顯示的內容還是亂碼,但是不是那種“??????”的亂碼,而是一些特殊字符
2. 然后在瀏覽器中查看菜單中修改成GB2312的編碼,這時亂碼就顯示中文了。
3. 但是這種方法是不可行的。
方法二:
1. 在b.jsp中把String name=request.getParameter("name");修改為
String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");
2. 這時再在頁面上顯示,則就是中文了。
方法三:
1. 有人說修改get/post的傳值方式,但是這是有前提的,如果只是把get方式修改成post方式,頁面結果還是亂碼!
2. 前提你必須配置了過濾器,若果你只是配置了過濾器,則傳值方式必須是:post方式才不是亂碼,如果是get方式照樣是亂碼!
3. 過濾器的配置,我想大家都能有,我就不說了
方法四:
1. 有人說配置tomcat的配置文件server.xml里這句:
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
加上這句:URIEncoding="GB2312"
2. 雖然可以但是有前提的,若果你過濾器沒有配置,則只是配置了server.xml文件,這樣只有在表單是get傳值時候才可以!當是post方式時,照樣是亂碼!
*這時我們就可以看出在tomcat5中的post與get傳值方式是不一樣的*
*有人要問有沒有一種方法讓傳值使用get方式或post方式都好用呢,下面就是我推薦的方法五*
方法五:
1. 其實很簡單,就是同時實現方法三又實現方法四!
2. 就是先配置過濾器,又配置server.xml文件,都設置成GB2312的編碼
3. 這樣無論是post還是get方式的表單傳值,中文都不會是亂碼!
分享:什么是模式?什么是框架?現在軟件設計里到處都是模式,框架。有次朋友問什么是模式?我也在學習中,就我的學習經驗,給出以下小結。(注意:個人觀點,僅供參考,歡迎指正。) 1.什么是模式?
- jsp response.sendRedirect不跳轉的原因分析及解決
- JSP指令元素(page指令/include指令/taglib指令)復習整理
- JSP腳本元素和注釋復習總結示例
- JSP FusionCharts Free顯示圖表 具體實現
- 網頁模板:關于jsp頁面使用jstl的異常分析
- JSP頁面中文傳遞參數使用escape編碼
- 基于jsp:included的使用與jsp:param亂碼的解決方法
- Java Web項目中連接Access數據庫的配置方法
- JDBC連接Access數據庫的幾種方式介紹
- 網站圖片路徑的問題:絕對路徑/虛擬路徑
- (jsp/html)網頁上嵌入播放器(常用播放器代碼整理)
- jsp下顯示中文文件名及絕對路徑下的圖片解決方法
- 相關鏈接:
- 教程說明:
JSP教程-對JSP頁面傳值中文亂碼的簡單解決方法
。