`
yyzhpq
  • 浏览: 301514 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Java 中文问题的解决 mysql, oracle, servlet, jsp

    博客分类:
  • java
阅读更多

在tomcat5中发现了以前处理tomcat4的方法不能适用于处理直接通过url提交的请求,上网找资料终于发现了最完美的解决办法,不用每个地方都转换了,而且无论get,和post都正常。写了个文档,贴出来希望跟我有同样问题的人不再像我一样痛苦一次:-)

上传文件有问题,只好直接贴了,难看点:-)

-------------------
Tomcat 5中文问题
author:kiss__sky@163.com
-------------------

问题描述:

1 表单提交的数据,用request.getParameter(“xxx”)返回的字符串为乱码或者??
2 直接通过url如http://localhost/a.jsp?name=中国,这样的get请求在服务端用request. getParameter(“name”)时返回的是乱码;按tomcat4的做法设置Filter也没有用或者用request.setCharacterEncoding("GBK");也不管用

原因:
1 tomcat的j2ee实现对表单提交即post方式提示时处理参数采用缺省的iso-8859-1来处理
2 tomcat对get方式提交的请求对query-string 处理时采用了和post方法不一样的处理方式。(与tomcat4不一样,所以设置setCharacterEncoding(“gbk”))不起作用。


解决办法:

首先所有的jsp文件都加上:
<%@ page contentType="text/html;charset=gb2312"%>

1 实现一个Filter.设置处理字符集为GBK。(在tomcat的webapps/servlet-examples目录有一个完整的例子。请参考web.xml和SetCharacterEncodingFilter的配置。)

1)只要把%TOMCAT安装目录%/ webapps\servlets-examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.class文件拷到你的webapp目录/filters下,如果没有filters目录,就创建一个。
2)在你的web.xml里加入如下几行:


<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


3)完成.

2 get方式的解决办法
1) 打开tomcat的server.xml文件,找到<connector>区块,加入如下一行:
URIEncoding=”GBK”
完整的应如下:
</connector>


<Connector
port="80" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true"
URIEncoding="GBK"
/>



2)重启tomcat,一切OK。

执行如下jsp页页测试是否成功


<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.*"%>

<%

String q=request.getParameter("q");
q = q == null? "没有值" : q;

%>


<HTML>
<HEAD><TITLE>新闻列表显示</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META http-equiv=pragma content=no-cache>
<body>
你提交了:
<%=q%>

<br>
<form action="tcnchar.jsp" method="post">
输入中文:<input type="text" name="q"><input type="submit" value="确定">
<br>
<a href="tcnchar.jsp?q=中国">通过get方式提交</a>

</form>
</BODY></HTML>



测试结果如果你输入文本框或者点超链都会显示:你提交了”中国”,说明成功!!!!!



特别感谢下面这篇帖子,帮我解决了中文问题.最后祝大家好运!!!
参考网址:

http://www.javaworld.com.tw/jute/post/view?bid=9&id=44042&sty=1&tpg=1&age=0

Java 中文问题一直困扰许多学习者。总结了下面的一些情况的解决方法。
希望对大家有帮助。

连接 Mysql Database Server:
-------------------------------------------------------------------------------
 mysql 不支持 unicode,所以比较麻烦。
 将 connectionString 设置成 encoding 为 gb2312
 String connectionString
 = "jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=gb2312";

测试代码:
       String str = "汉字";
       PreparedStatement pStmt = conn.prepareStatement("INSERT INTO test VALUES (?)");
       pStmt.setString(1,str);
       pStmt.executeUpdate();

数据库表格:
 create table test (
   name char(10)
 )


连接 Oracle Database Server
-------------------------------------------------------------------------------
 在把汉字字符串插入数据库前做如下转换操作:
 String(str.getBytes("ISO8859_1"),"gb2312")

测试代码:
       String str = "汉字";
       PreparedStatement pStmt = conn.prepareStatement("INSERT INTO test VALUES (?)");
       pStmt.setString(1,new String(str.getBytes("ISO8859_1"),"gb2312");
       pStmt.executeUpdate();


Servlet
-------------------------------------------------------------------------------
 在 Servlet 开头加上两句话:
 response.setContentType("text/html;charset=UTF-8");
 request.setCharacterEncoding("UTF-8");

JSP
-------------------------------------------------------------------------------
 在 JSP 开头加上:
 <%@ page contentType="text/html; charset=gb2312" %>

分享到:
评论

相关推荐

    jsp+JavaBean+Servlet_Oracle和Mysql分页

    本项目聚焦于使用JSP、JavaBean和Servlet技术,结合Oracle与MySQL两种主流关系型数据库实现分页功能。以下将详细介绍这些技术及其在分页中的应用。 1. JSP(JavaServer Pages):JSP是一种动态网页技术,允许开发...

    blog (适合Mysql oracle)

    综合以上信息,我们可以得出这个项目是一个用JSP开发的多用户博客平台,它支持MySQL和Oracle两种数据库,提供了用户注册、登录、发布博客文章等基本功能,并附带了一个系统说明文档来指导用户和开发者进行操作和维护...

    Servlet_Jsp_Login.rar_java servlet_jsp servlet_jsp 登陆_login se

    3. **数据库连接**:使用Java的JDBC(Java Database Connectivity) API建立与数据库的连接,通常是一个关系型数据库如MySQL或Oracle。 4. **查询用户信息**:在数据库中执行SQL查询,查找匹配的用户名和密码。 5. *...

    飞机订票系统(jsp+servlet)

    【飞机订票系统(jsp+servlet)】是一个典型的Web应用程序,它使用了Java技术栈中的JSP(JavaServer Pages)和Servlet,以及Oracle数据库来构建一个完整的线上订票平台。这个系统旨在为用户提供便捷的机票预订服务,...

    java jsp servlet 通讯录

    【Java JSP Servlet 通讯录】是一个典型的Web应用程序示例,特别适合初学者用来学习Java Web开发技术。在这个项目中,我们主要会涉及到三个核心技术:Java、JSP(JavaServer Pages)和Servlet。 1. **Java**: Java...

    jsp+oracle/mysql源码

    【标题】"jsp+oracle/mysql源码"涉及的是在Web开发中使用Java Server Pages(JSP)技术结合Oracle或MySQL数据库进行数据管理的应用实例。这是一个常见的组合,因为JSP是用于构建动态网页的Java技术,而Oracle和MySQL...

    java项目音乐(JSP+SERVLET)

    【Java项目音乐(JSP+Servlet)】是一种基于Java技术的Web应用,主要使用JSP(JavaServer Pages)和Servlet来实现动态网页功能。这个项目可能是为了构建一个在线音乐平台,让用户能够浏览、搜索、播放和可能下载音乐。...

    基于jsp+servlet的博客

    【基于jsp+servlet的博客系统】是一个典型的Web应用程序,它结合了JavaServer Pages(JSP)和Servlet技术,用于构建动态、交互式的博客平台。在这个系统中,JSP主要用于展示用户界面,而Servlet则承担了业务逻辑处理...

    基于jsp+servlet+javabean的java web开发

    在Java Web开发中,"基于jsp+servlet+javabean"的模式是一种常见的架构,用于构建动态、数据驱动的Web应用程序。这个小练习可能是一个汽车店系统的车辆预约管理应用,让我们详细了解一下这些技术及其在Web开发中的...

    java语言程序设计 servlet jsp gouwuche

    Java语言程序设计是软件开发领域中的重要组成部分,特别是在Web应用程序的开发中,Servlet和JSP(JavaServer Pages)是两个核心的技术。本项目是基于Java的毕业设计,它结合了Servlet和JSP来构建一个购物车系统,...

    Java Web课程设计,基于servlet+jsp+mysql做的影视管理系统.zip

    本项目是一个基于Java Web技术的影视管理系统,采用Servlet和JSP技术进行后端处理与前端展示,同时结合MySQL数据库来存储和管理数据。这个系统设计适用于毕业设计、课程设计以及编程爱好者的学习实践。 1. **Java ...

    Java项目之音乐网站(JSP+SERVLET)源代码

    本项目是基于Java技术栈构建的一个音乐网站,主要利用了JSP(JavaServer Pages)和Servlet技术,旨在提供一个在线音乐播放和管理的平台。这个项目对于初学者和有一定经验的开发者来说,都是一个很好的实践案例,可以...

    jsp 连接数据库 mysql oracle sqlserver

    本教程将讲解如何使用JSP来连接三种常见的关系型数据库:MySQL、Oracle和SQL Server。 首先,我们需要了解JDBC(Java Database Connectivity),它是Java语言连接数据库的标准接口。在JSP中,我们通常通过编写...

    JSP,Servlet简易淘宝网JAVA

    JSP(JavaServer Pages)和Servlet是Java Web开发中的两个核心技术,它们在构建动态网站和Web应用程序中起着关键作用。本项目“JSP,Servlet简易淘宝网JAVA”旨在通过这两种技术实现一个简单的淘宝网模拟系统,让...

    JavaEnterprise原始企业开发servlet+jsp实现系统用户注册 jar包

    在Java企业级开发中,Servlet和JSP是两种核心的技术,它们被广泛应用于构建Web应用程序,尤其是用户管理系统。本主题将深入探讨如何使用Servlet和JSP实现系统用户注册功能,并介绍相关的jar包及其作用。 首先,...

    J2EE网上订餐系统(JSP+Servlet+mysql)

    本系统以JSP、Servlet和MySQL为核心技术,旨在为初学者提供一个直观易懂的学习平台,尤其适合正在学习Java Web开发的学生。下面,我们将深入探讨这个系统的架构、实现原理以及其关键技术。 首先,J2EE(Java 2 ...

    BBS.rar_bbs jsp_java BBS_java+web+servlet_javaweb论坛项目_jsp/serv

    【标题】"BBS.rar_bbs jsp_java BBS_java+web+servlet_javaweb论坛项目_jsp/serv" 提供的信息显示,这是一个基于Java Web技术开发的BBS(Bulletin Board System,即电子公告板)项目。该论坛项目采用JSP(JavaServer...

    JSP_JDBCconn_oracle_java_MYSQL_

    本资源“JSP_JDBCconn_oracle_java_MYSQL_”聚焦于如何使用JSP和JDBC来连接并操作MsSQL、MYSQL和Oracle这三种不同的数据库系统。下面将详细介绍这些知识点。 1. **JSP基础**: - JSP是基于Java Servlet技术的,它...

    java jsp mysql tomcat

    ### Java JSP MySQL Tomcat:构建数据驱动的Web应用程序 ...通过学习本书,读者不仅能够掌握 JSP、JDBC、MySQL 和 Tomcat 的基本概念和操作技巧,还能够了解如何结合这些技术来解决实际问题,从而提升自己的开发技能。

    Oracle+jsp+servlet+eclipse学生选课与信息管理系统EduSystem.rar

    javaweb课程设计学生信息选课管理系统; 老师学生双重用户; 额外实现了成绩单页面转pdf与打印下载接口; jsp servlet数据库连接 有助于初学者学习深入; 数据库使用oracle/mysql 都可以

Global site tag (gtag.js) - Google Analytics