千家信息网

Tomcat 4.0和Tomcat 4.1下JSP页面中文问题的示例分析

发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,这篇文章将为大家详细讲解有关Tomcat 4.0和Tomcat 4.1下JSP页面中文问题的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。目前, Tomca
千家信息网最后更新 2025年02月24日Tomcat 4.0和Tomcat 4.1下JSP页面中文问题的示例分析

这篇文章将为大家详细讲解有关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" %> 

问题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页面中文问题的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

方法 中文 问题 汉字 字符 页面 参数 编码 原因 乱码 单个 篇文章 示例 分析 中文版 代码 多个 字符串 字符集 引擎 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 闵行区无线网络技术服务至上 建设银行服务器不可用什么意思 图书馆的网络安全类型 移动免费提供云服务器 mc服务器进去两秒就丢失连接 毕节服务器云存储厂家 服务器需要关机休息 部队网络安全警示教育授课主持词 国家电网山东电力公司网络安全 群众网络安全卫士 前端怎么获取表格数据库 iris数据库是什么类型 网络安全形式分析与舆情监控 警察网络安全宣传周简报 网络安全宣传活动情况汇报 服务器虚拟化缺点 网站数据库管理信息 初学者建议学习什么数据库 投资理财软件开发 url转发服务器防护 表格怎么筛选特定字的数据库 oracle数据库 实例 开源数据库种类 电视台网络安全工作会议发言材料 网络技术研发部职责说明 电梯调服务器的那个东西是什么 cs结构数据库 初学者建议学习什么数据库 平安银行网络安全知识考试 网络安全实战攻防演练新闻稿
0