亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Tomcat 4.0和Tomcat 4.1下JSP頁面中文問題的示例分析

發布時間:2021-11-22 11:44:08 來源:億速云 閱讀:130 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關Tomcat 4.0和Tomcat 4.1下JSP頁面中文問題的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

目前, Tomcat 作為一種出色的開放源代碼的 JSP 服務器,目前在 JSP 的開發過程中獲得了廣泛的應用. 但是作為一款英語國家公司開發的軟件, 在中文環境下不可避免的會出現一些亂碼問題. 這里就 Tomcat 4.0和Tomcat 4.1 下的常見中文問題及其解決方法做一個總結. 這些方法都已經在 中文版 Windows 98 + JDK 1.3.1 和 中文版 Windows 2000 + JDK 1.3.1 下通過了測試. 另外在 IBM 的網站上有一個網頁 http://www-900.ibm.com/developerWorks/cn/java/jsp_dbcsz/index.shtml 也討論了這個問題.

首先為了便于討論, 這里首先列出了一些方便的工具方法, 便于我們的討論. 這些方法如下所示:

public String toChi(String input) {  try {  byte[] bytes = input.getBytes("ISO8859-1");  return new String(bytes);  }catch(Exception ex) {  }  return null;  }  // 對給定字符進行 URL 編碼  public String encode(String value) {  if(isEmpty(value)) return "";  return java.net.URLEncoder.encode(value);  }    // 對給定字符進行 URL 解碼  public String decode(String value) {  if(isEmpty(value)) return "";  return java.net.URLDecoder.decode(value);  }

問題1. 瀏覽器中看到的 JSP頁面中的漢字怎么都成了
可能原因如下: 您的頁面中沒有指定頁面的字符集為中文. 解決方法(適用于Tomcat 4.0和Tomcat 4.1)是在頁面中添加如下代碼:

<%@ page contentType="text/html;charset=gb2312" %> <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

問題2. 通過 POST 方法提交的表單的漢字都顯示為亂碼(在 Tomcat 4.0 下正常, Tomcat 4.1 下出現).
可能原因如下: POST 提交的字符串都是 ISO8859-1 編碼的, 只要把它的字符集轉換到中文就行了. 解決方法如下(適用于 Tomcat 4.1):

// 單個的參數  String result = toChi(request.getParameter("parameterName"));  // 多個參數  String values[] = request.getParameterValues(name);  if(values != null) {  for(int i = 0; i < values.length; i++) {  values[i] = toChi(values[i]);  }  }

問題3. 通過 GET 方法提交的表單的漢字都顯示為亂碼(在 Tomcat 4.0和Tomcat 4.1 下都出現).可能原因如下: GET 提交的字符串都是 ISO8859-1 編碼的, 只要把它的字符集轉換到中文就行了. 解決方法如下(適用于 Tomcat 4.1, Tomcat 4.0 下不能用于 page.jsp?username=中文):

// 單個的參數  String result = toChi(request.getParameter("parameterName"));  // 多個參數  String values[] = request.getParameterValues(name);  if(values != null) {  for(int i = 0; i < values.length; i++) {  values[i] = toChi(values[i]);  }  }

問題4. Cookie 中不能寫入漢字或者漢字無法正確顯示.可能原因如下: Tomcat 4.0 下自動把 Cookie 做了編碼為 ISO8859-1 的存儲, 而 Tomcat 4.1 下的 JSP 引擎不支持包含含有漢字的 Cookie.

Tomcat 4.0 下的解決方法:

// 根據 Cookie 名稱得到請求中的 Cookie 值, 如果 Cookie 值是 null, 則返回 ""  public String getCookieValue(HttpServletRequest request, String name) {  Cookie[] cookies = request.getCookies();  if(cookies == null) return "";  for(int i = 0; i < cookies.length; i++) {  Cookie cookie = cookies[i];  if(cookie.getName().equals(name)) {  // 需要對 Cookie 中的漢字進行 URL 反編碼, 適用版本: Tomcat 4.0  return decode(cookie.getValue());  }  }  // A cookie might not return a null value, may return a ""  return "";  }

Tomcat 4.1 下的解決方法:

// 寫入包含漢字 Cookie 的方法  response.addCookie(new Cookie("cookieName", encode("漢字")));  // 得到 Cookie 值的方法(同 Tomcat 4.0 的解決方法)  public String getCookieValue(HttpServletRequest request, String name) {  Cookie[] cookies = request.getCookies();  if(cookies == null) return "";  for(int i = 0; i < cookies.length; i++) {  Cookie cookie = cookies[i];  if(cookie.getName().equals(name)) {  // 需要對 Cookie 中的漢字進行 URL 反編碼, 適用版本: Tomcat 4.0  return decode(cookie.getValue());  }  }  // A cookie might not return a null value, may return a ""  return "";  }

問題5. 在 Tomcat 4.0 下 GET 請求(如: page.jsp?username=中文) 無法返回原來的值.原因: 與 Tomcat 引擎有關, 不論是否轉換內碼, 均無法返回原來的值, 但是有一個替代方法, 如下:
將URL地址改變為 "page.jsp?username=" + encode("中文")然后使用下列代碼取回參數:

// 單個的參數  String result = toChi(request.getParameter("parameterName"));

關于“Tomcat 4.0和Tomcat 4.1下JSP頁面中文問題的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

普兰县| 浏阳市| 焦作市| 马关县| 泽州县| 蛟河市| 彩票| 临沂市| 玉山县| 大宁县| 石渠县| 万安县| 定西市| 东乡县| 江口县| 房产| 宜丰县| 蚌埠市| 汤阴县| 塔城市| 昭苏县| 忻州市| 襄汾县| 呼图壁县| 侯马市| 壶关县| 六枝特区| 台安县| 九龙城区| 彭阳县| 禹城市| 德兴市| 教育| 广水市| 尼木县| 治县。| 新河县| 镇坪县| 七台河市| 芦溪县| 漾濞|