仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 710|回复: 10
打印 上一主题 下一主题

[学习教程] JAVA网页编程之JBOSS中,中文成绩的完全办理

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:30:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Oracle收购Sun后Java前途未卜。办理|成绩|中文在从weblogic体系迁徙到jboss体系的时分,中文存储到数据库和XML文件呈现乱码。
我利用的是jboss3.0.8jetty版。
这是因为JBOSS中传送变量默许的ISO-8859-1的西笔墨符集。
我的办理举措是间接修正org.mortbay.jetty.jar。如许不必在程序中写良多转换历程。
起首到http://sourceforge.net/project/showfiles.php?group_id=7322,但凡叫xxxx-src.tar.gz的,都是源代码。我下载的是jetty-4.2.20RC0-all。
在../jboss-3.0.8/server/default/deploy/jbossweb.sar目次下,必要修正org.mortbay.jetty.jar中的orgmortbayhttp下的HttpRequest.java
上面是代码修正部分:
privatevoidextractParameters()
{
if(_paramsExtracted)
return;
_paramsExtracted=true;

if(_parameters==null)
_parameters=newMultiMap(16);

//Handlequerystring
Stringencoding=getCharacterEncoding();
if(encoding==null)
{
//Noencoding,sousetheexistingcharacters.
//anitamodify
//encoding=StringUtil.__ISO_8859_1;
encoding=StringUtil.__GBK;
_uri.putParametersTo(_parameters);
}
else
{
//Anencodinghasbeenset,soreencodequerystring.
Stringquery=_uri.getQuery();
if(query!=null)
{
try
{
//anitamodify
//byte[]qbytes=query.getBytes(StringUtil.__ISO_8859_1);
byte[]qbytes=query.getBytes(StringUtil.__GBK);
UrlEncoded.decodeTo(qbytes,0,qbytes.length,_parameters,encoding);
}
catch(Exceptione)
{
_uri.putParametersTo(_parameters);
}
}
}
在正文了“//anitamodify”的部分下,是关头的交换部分。
如今才做了一小部合作作哦,还要持续。在StringUtil下并没有__GBK办法,那我们就增加本人必要的这段代码。
到orgmortbayutil下,翻开StringUtil.java
我们必要做的是在源程序中增加以下代码:
//anitaaddforGBK
publicstaticString__GBK;
static
{
StringGBK=System.getProperty("GBK");
if(GBK!=null)
__GBK=GBK;
else
{
try{
newString(newbyte[]{(byte)20},"GBK");
__GBK="GBK";
}
catch(java.io.UnsupportedEncodingExceptione)
{
__GBK="GBK";
}
}
}
修正完,利用ant来实行编译打包,并交换失落JBOSS自带的org.mortbay.jetty.jar。

如许,中文存储成绩就办理了。假如某位老迈非要在地点中利用中文URL怎样办?让我持续……
到orgmortbayutil下,翻开URI.java找到约莫200行
publicvoidsetURI(Stringuri)
{
………………
………………
//completelaststate
switch(state)
{
case1:
………………
case2:
………………
case3:
_dirty=(mark==maxi);
_encodedPath=uri.substring(mark);
_path=java.net.URLDecoder.decode(_encodedPath,"UTF8");
//我用下面这句交换了上面这句,就能够了:)
//_path=decodePath(_encodedPath);
break;
case4:
………………
case5:
………………
}
}

一样编译打包,交换org.mortbay.jetty.jar。
如许假如你的路径中呈现中笔墨符也能够顺遂办理了。

上述办理办法在WIN2000和REDHATLINUX上均运转乐成。
别忘了,LINUX上要设置你的字符集
locate一下,假如还不是GBK字符集,那必要
exportLANG=zh_CN.GBK
exportLC_ALL=zh_CN.GBK


ruby里有这些工具吗?又要简单多少?我没有用过这两门语言,我估计在这些语言力没有很统一的这种标准,或者根本就没有提供。
灵魂腐蚀 该用户已被删除
沙发
发表于 2015-1-21 08:55:46 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
板凳
发表于 2015-1-24 15:20:48 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
蒙在股里 该用户已被删除
地板
发表于 2015-2-1 18:16:49 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
老尸 该用户已被删除
5#
发表于 2015-2-7 13:17:30 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
小妖女 该用户已被删除
6#
发表于 2015-2-21 02:19:17 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
小魔女 该用户已被删除
7#
发表于 2015-2-27 22:08:19 | 只看该作者
是一种为 Internet发展的计算机语言
若天明 该用户已被删除
8#
发表于 2015-3-9 14:38:56 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
深爱那片海 该用户已被删除
9#
发表于 2015-3-13 00:09:37 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
活着的死人 该用户已被删除
10#
发表于 2015-3-20 06:49:50 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
若相依 该用户已被删除
11#
发表于 2015-4-6 23:11:51 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 02:39

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表