`
linzhanghui
  • 浏览: 46149 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

学习笔记 jsp乱码处理

    博客分类:
  • Java
阅读更多
页面,数据库,服务器 等编码方式向utf-8靠拢
1.JSP输出中文的乱码问题
1).jsp页面头部<%@ page contentType="text/html;charset=utf-8" %>(在Servlet中使用httpServletResponse.setContentType("text/html;charset=utf-8")),最好同时在JSP页面的head部分加上<meta http-equiv="Content-Type" content="text/html; charset="utf-8">。
2).在每次要输出中文的地方主动转换编码方式

2.获取表单提交的数据时的中文乱码问题
Java代码 复制代码
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>   
  3. <% String str=request.getParameter("chStr");   
  4.     if(str==null) str="没有输入值";   
  5.  %>   
  6. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">   
  7. <html>   
  8. <head>   
  9. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">   
  10. <title>Insert title here</title>   
  11. </head>   
  12. <body>   
  13. 你输入的内容为:<%= str %><br/>   
  14. <form action="luanma.jsp" method="post">   
  15. 请输入中文:<input type="text" name="chStr"/><input type="submit" value="确定"/>   
  16.   
  17. </form>   
  18. </body>   
  19. </html>  



这段代码产生提交数据中文乱码
解决办法1.局部解决方法:将表单中的中文数据取出来过后再转换编码,String str = request.getParameter("chStr"); String str = new String(str.getBytes("ISO-8859-1"),"utf-8"),
解决办法2.让所有页面的请求通过一个Filter,将处理字符集设置为utf-8
拷贝tomcat示例代码SetCharacterEncodingFilter到自己的工程中,
在自己工程的web.xml中加入代码:
Java代码 复制代码
  1. <filter>   
  2.  <filter-name>Set Character Encoding</filter-name>   
  3.  <filter-class>linzhanghui.iteye.com.util.filter.SetCharacterEncodingFilter</filter-class>   
  4.  <init-param>   
  5.   <param-name>encoding</param-name>   
  6.   <param-value>UTF8</param-value>   
  7.  </init-param>   
  8. </filter>   
  9. <filter-mapping>   
  10.  <filter-name>Set Character Encoding</filter-name>   
  11.  <url-pattern>/*</url-pattern>   
  12. </filter-mapping>  



3.URL中中文处理:
打开Tomcat安装目录下的/conf/server.xml文件,找到Connector块,往其中添加URIEncoding="utf-8"/>
示例:
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="utf-8" />

4.数据库访问时的乱码问题
连接字符串写成如下形式:
jdbc://mysql://hostname:port/DBname?user=username&password=pwd&useUnicode=true&character Encoding=utf-8

数据源的方式连接数据库:
<parameter>
    <name>url</name>
    <value>jdbc:mysql://hostname:port/DBname? &useUnicode=true&characterEncoding=utf-8 </value>
</parameter>
但是,如果使用一个已经存在的数据库,数据库的编码方式为ISO-8859-1,而web应用中使用utf-8。且数据库中已经有很多重要信息,因此不能通过更改数据库的编码方式来解决问题。这个时候,在往数据库中写数据时,一定要在jdbc连接字符串中加入"useUnicode=true&characterEncoding=ISO-8859-1"
具体实现如下:
public String charConvert(String src){
   String result=null;
   if (src!=null) {
      try {
          result = new String(src.getBytes("ISO-8859-1"),"utf-8");
      } catch (Exception e) {
        result = null;
      }
   }
    return result;
}

于是,在从数据库读出数据过后调用charConvert(rs.getString("colName"))
分享到:
评论

相关推荐

    JSP-Servlet学习笔记第2版.pdf

    由于直接学习笔记的内容没有给出具体的实例代码和详细解释,所以这里只提供了理论层面的知识点。如果需要学习具体实现,可以寻找相关的教程和项目实践来加深理解。同时需要注意的是,由于JSP/Servlet技术相对老旧,...

    Java学习笔记

    Java学习笔记 1、连接数据库步骤 2、不同数据库的驱动程序和连接字符串 3、连接数据库常见问题 4、B/S结构和C/S结构的区别 5、如何处理中文乱码问题 6、使用JavaMail发送注册验证邮件 7、不安全的用户名密码验证 8、...

    jsp学习笔记,包括struts、数据库方面

    在提供的"jsp笔记"文件中,可能包含了对这些问题的详细记录和解决方案,包括JSP语法的使用示例、Struts框架的应用实例、如何配置和优化数据库连接池以解决连接问题,以及处理乱码问题的具体步骤。此外,笔记可能还会...

    JAVA-JSP学习笔记.doc

    【JAVA-JSP学习笔记】 1. **JSP中去除字符串空格**:在JSP中,我们可以使用`String.trim()`方法来去除字符串两端的空格,如果需要去除所有空格,可以使用`String.replaceAll("\\s", "")`。 2. **JSP页面间参数传递...

    JSP学习笔记

    ### JSP学习笔记详解 #### 一、JSP基础语法概览 JSP(Java Server Pages)是一种在服务器端执行的脚本语言,用于生成动态网页。它将HTML标记、JavaScript脚本和Java代码结合在一起,使开发者能够创建功能丰富的Web...

    java学习笔记

    本资源是 Java 开发者的学习笔记,涵盖了项目管理、权限管理、自动编号、Ajax 访问 servlet、数据库查询、字符串处理、数据加密、jQuery 弹框插件、乱码解决方案、版本控制、流程中加载 Java 事件、页面警告弹框、...

    appfuse学习笔记(三)解决乱码和菜单设置

    在本篇“appfuse学习笔记(三)解决乱码和菜单设置”中,我们将深入探讨在使用AppFuse框架时遇到的编码问题以及如何定制应用程序的菜单。AppFuse是一款开源项目,它提供了一个快速开发Web应用的基础,特别是对于Java...

    JavaWeb阶段学习笔记

    - **请求乱码处理**:解决不同请求方式下的中文乱码问题。 - **请求转发**:实现Servlet之间的数据传递和请求转发。 **示例代码**: ```java // 获取GET请求参数 String name = request.getParameter("name"); // ...

    javaWeb学习笔记.pdf

    ### JavaWeb 学习笔记知识点总结 ...以上是对JavaWeb学习笔记中的JSP相关知识点进行了详细总结,包括JSP的基本概念、部署方式、编码设置、动态交互流程以及页面跳转等内容。希望对你学习JavaWeb有所帮助。

    jsp基本语法 学习指南

    jsp 基础的学习笔记 第一章语法和el表达式语言的使用 JSP学习要点记录 jsp乱码解决大全 基础开发入门级:JSP与ASP的比较 用EL访问javabean pro jsp第三章第五节代码 .......

    jsp详细整理笔记

    ### JSP基础知识与应用详解 #### 一、JSP概述 JSP(JavaServer Pages)是一种...通过以上内容的学习,我们不仅可以更好地理解JSP的基本原理和使用方法,还能掌握如何在实际开发中高效地运用JSP技术来构建动态网站。

    jsp学习笔记

    **JSP(Java Server Pages)**是一种动态网页技术,它允许开发者将HTML代码与Java代码混合在一起,以创建交互式的Web应用。...通过不断实践和学习,你将能够更有效地利用JSP创建复杂、高效的应用程序。

    J2EE相关技术知识学习笔记

    例如,Out对象用于向页面输出内容,处理字符编码问题时,可以通过设置contentType属性或调用request.setCharacterEncoding()方法来解决乱码问题。 JSP的页面定位涉及到URL路径的理解。在Web应用中,"/"通常代表根...

    JavaWeb个人学习笔记

    ### 中文乱码处理 中文乱码是Web开发中常见的问题,主要出现在数据传输过程中。产生乱码的原因主要有两个:一个是浏览器与服务器之间的编码不一致,另一个是GET和POST请求提交数据时编码的问题。 - 在GET请求中,...

    JAVA-WEB学习笔记.pdf

    ### JAVA-WEB学习笔记知识点详解 #### 一、Tomcat配置与环境搭建 **1. Tomcat 安装步骤:** - **安装 JDK:** 在安装 Tomcat 之前,需要先安装 JDK (Java Development Kit)。这里以 JDK 1.5 为例。 - 下载并安装 ...

    牛人的spring学习笔记,非常适合初学者

    ### 牛人的Spring学习笔记,非常适合初学者 #### 第一课:面向抽象编程 面向抽象编程是一种编程思想,强调在程序设计过程中通过定义抽象层来分离业务逻辑与具体实现细节。这种方式有助于提高软件的可维护性和扩展...

    Spring的学习笔记

    以下将详细介绍Spring学习笔记中的主要知识点。 **面向抽象编程** 面向抽象编程是一种设计原则,强调在代码中使用接口或抽象类,而不是具体实现类。这使得系统更具有灵活性,易于扩展和维护。在Spring框架中,我们...

    SpringMVC学习笔记+学习源码.zip

    总的来说,这份"SpringMVC学习笔记+学习源码.zip"资源涵盖了SpringMVC的基本概念、配置、控制器、数据绑定、异常处理、视图解析等多个方面的内容,对于初学者和有一定经验的开发者都是很好的学习资料。通过深入学习...

    Struts2学习笔记

    ### Struts2学习笔记知识点梳理 #### 一、Struts2框架概述 - **背景**:Struts2作为Struts1的升级版本,融合了WebWork框架的优点,由Apache基金会维护,是一个开源、免费的MVC框架。尽管随着时间的推移,Spring MVC...

Global site tag (gtag.js) - Google Analytics