[url]http://blog.csdn.net/arielxp/archive/2004/06/23/23874.aspx [/url]
Java 中文问题的解决 mysql, oracle, servlet, jsp
版权声明:CSDN是本Blog托管服务提供商。如本文牵涉版权问题,CSDN不承担相关责任,请版权拥有者直接与文章作者联系解决。
在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文件,找到区块,加入如下一行:
URIEncoding=”GBK”
完整的应如下:
<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分页
javaweb课程设计学生信息选课管理系统; 老师学生双重用户; 额外实现了成绩单页面转pdf与打印下载接口; jsp servlet数据库连接 有助于初学者学习深入; 数据库使用oracle/mysql 都可以
基于jsp servlet oarcle 飞机订票系统,解压后倒入项目,跑完数据库脚本,部署好项目后,就能访问。提供数据库脚本,采用oracle数据库实现。
包括:ERP管理系统(jsp+servlet)、Java聊天室程序(java)、车辆管理系统(struts+hibernate+spring+oracle)、图书管理系统(struts+hibernate+spring+ext) 学生成绩管理系统(SSH+MYSQL)、ExtJS 2.2 开源网络硬盘系统_...
jsp,mysql,oracle,js,servlet,ssh,web等中文帮助文档 ,都是中文的,便于大家学习,打包了。
java部分:程序基本概念、数据类型、流程控制、顺序、选择 、循环、跳转语句、变量、类、方法、实用类、JDBC、三层架构Druid连接池、Apache的DBUtils使用、Servlet等。 数据库部分:创建表、增删改查语句的书写等。 ...
第1章 servlet和jsp技术概述 1.1 servlet的功用 1.2 要动态构建网页的原因 1.3 servlet代码初探 1.4 servlet相对于“传统”cgi的优点 1.5 jsp的作用 第1部分 servlet技术 第2章 服务器的安装和配置 ...
网上现有例子大都是上传本地文件到数据库,该例子可以jsp上传文件并保存到数据库,读取显示;但是最后需要用户自己删除服务器端文件。
java web开发,jsp,servlet框架,mysql,适合个人研究学习,用于毕业设计,课程设计等 java web开发,jsp,servlet框架,mysql,适合个人研究学习,用于毕业设计,课程设计等 java web开发,jsp,servlet框架,...
JSP+Oracle数据库开发与实例 张晓东,高鉴伟 清华大学出版社 ... 本书适用于使用JSP和Oracle开发动态网站的技术人员以及对相关技术感兴趣的读者,同时可以供使用SQL Server、MySQL等数据库开发网站的读者参考。
学生宿舍管理系统源码 技术:Java;JSP/Servlet;JDBC 数据库:Oracle web服务器:Tomcat 集成开发工具: MyEclipse
oracle/mysql jsp servlet 有助于初学者学习深入 javaweb学生信息选课管理系统源代码。javaweb学生信息选课管理系统--老师学生双用户; 额外实现了成绩单页面转pdf与打印下载接口; oracle/mysql jsp servlet 有助...
这是一套非常有用的移动ssh项目(struts+spring+hibernate+oracle)项目,大家可自行下载开发,里面有毕业设计相关论文,以及完整代码,大家可以参考学习得到自己的认知体会,总结学习方法,完善自己的项目
它由Sun Microsystems(现在是Oracle Corporation)的James Gosling等人在1995年推出,被设计为一种简单、健壮、可移植、多线程、动态的语言。Java的主要特点和优势包括以下几个方面: 跨平台性(Write Once, Run ...
Jsp+Servlet+Jdbc+mysql实现,eclipse工具开发,数据库兼容Oracle、MySQL(已在dao层写入两种数据库访问方法)。前端页面高仿酷狗官网,音乐网站脚手架项目框架,带后台和数据库文件。
之后是JAVA EE,先学习Servlet、JSP,然后再学习Struts、Hibernate、Spring等框架。 JAVA SE是JAVA EE的基础,Servlet、JSP是框架的基础。 还有数据库,个人建议学习oracle,当然其它的像MySQL,MS SQL,都可以,...
沪宁全线动车售票系统 硬件环境: CPU 1.6HZ ;内存 1G 软件环境:操作系统windows xp WEB服务器:Tomcate 6.0 ...本设计采用JSP+Servlet+JDBC+oracle技术进行开发,最后通过JDBC进行与数据库的相关的链接。
熟练掌握Java EE开发技术,包括Servlet、JSP、JDBC等 熟悉常用的数据库操作和SQL语言,如MySQL、Oracle等 具备较强的问题解决能力和代码调试能力 有良好的编程规范和代码质量意识 高级程序员Java简历资源描述: 在...
5. 采用了 JDBC 技术实现数据库操作,支持对 MySQL、Oracle 等多种数据库的访问。 **二次开发与定制:** 本项目提供了丰富的功能模块和技术支持,可以根据实际需求进行二次开发和定制。例如,可以增加更多的选题...
题目名称:企业人事档案管理系统 技术方向:WEB(JSP)/JAVA 题目内容: 实现对企业员工从招聘-->试用->...2、 MySQL / Oracle / Sql-server 数据库(任选其一) 3、 Tomcat4.1以上版本WEB服务器 4、 eclipse 开发工具