仓酷云

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

[学习教程] JAVA网站制作之Java/J2EE中文成绩最终办理之道

[复制链接]
深爱那片海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:13:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
什么时候上述的三种开发工具能和三为一,什么时候java的竞争力才更强,才有机会拉拢更多的程序员投入到对java的开发上,因为到时的开发工具将会比.net的更简单。还有一点也很关键,什么时候java推出的jsf能成为真正意义上的标准。j2ee|办理|成绩|中文Java中文成绩一向困扰着良多初学者,假如懂得了Java体系的中文成绩道理,我们就能够对中文成绩可以接纳基本的办理之道。最陈旧的办理计划是利用String的字节码转换,这类计划成绩是不便利,我们必要损坏对象封装性,举行字节码转换。
另有一种体例是对J2EE容器举行编码设置,假如J2EE使用体系离开该容器,则会产生乱码,并且指定容器设置不切合J2EE使用和容器分别的准绳。
在Java外部运算中,触及到的一切字符串城市被转化为UTF-8编码来举行运算。那末,在被Java转化之前,字符串是甚么样的字符集?Java老是依据操纵体系的默许编码字符集来决意字符串的初始编码,并且Java体系的输出和输入的都是接纳操纵体系的默许编码。
因而,假如能一致Java体系的输出、输入和操纵体系3者的编码字符汇合,将可以使Java体系准确处置和显现汉字。这是处置Java体系汉字的一个准绳,可是在实践项目中,可以准确捉住和把持住Java体系的输出和输入部分是对照难的。J2EE中,因为触及到内部扫瞄器和数据库等,以是中文成绩乱码显得十分凸起。
J2EE使用程序是运转在J2EE容器中。在这个体系中,输出路子有良多种:一种是经由过程页面表单打包成哀求(request)发往服务器的;第二种是经由过程数据库读进;另有第3种输出对照庞大,JSP在第一次运转时老是被编译成Servlet,JSP中经常包括中笔墨符,那末编译利用javac时,Java将依据默许的操纵体系编码作为初始编码。除非出格指定,如在Jbuilder/eclipse中能够指定默许的字符集。
输入路子也有几种:第一种是JSP页面的输入。因为JSP页面已被编译成Servlet,那末在输入时,也将依据操纵体系的默许编码来选择输入编码,除非指定输入编码体例;另有输入路子是数据库,将字符串输入到数据库。
由此看来,一个J2EE体系的输出输入长短常庞大,并且是静态变更的,而Java是跨平台运转的,在实践编译和运转中,都大概触及到分歧的操纵体系,假如任由Java自在依据操纵体系来决意输出输入的编码字符集,这将不成把持地呈现乱码。
恰是因为Java的跨平台特征,使得字符集成绩必需由详细体系来一致办理,以是在一个Java使用体系中,办理中文乱码的基本举措是明白指定全部使用体系一致字符集。
指定一致字符集时,究竟是指定ISO8859_1、GBK仍是UTF-8呢?
(1)如一致指定为ISO8859_1,由于今朝年夜多半软件都是东方人体例的,他们默许的字符集就是ISO8859_1,包含操纵体系Linux和数据库MySQL等。如许,假如指定Jive一致编码为ISO8859_1,那末就有上面3个环节必需掌控:
开辟和编译代码时指定字符集为ISO8859_1。
运转操纵体系的默许编码必需是ISO8859_1,如Linux。
在JSP头部声明:。
(2)假如一致指定为GBK中笔墨符集,上述3个环节一样必要做到,分歧的是只能运转在默许编码为GBK的操纵体系,如中文Windows。
一致编码为ISO8859_1和GBK固然带来体例代码的便利,可是各自只能在响应的操纵体系上运转。可是也损坏了Java跨平台运转的优胜性,只在必定局限熟行得通。比方,为了使得GBK编码在linux上运转,设置Linux编码为GBK。
那末有无一种除使用体系之外不必要举行任何附加设置的中文编码基本办理计划呢?
将Java/J2EE体系的一致编码界说为UTF-8。UTF-8编码是一种兼容一切言语的编码体例,唯一对照贫苦的就是要找到使用体系的一切收支口,然后利用UTF-8往“结扎”它。
一个J2EE使用体系必要做以下几步事情:
开辟和编译代码时指定字符集为UTF-8。JBuilder和Eclipse都能够在项目属性中设置。
利用过滤器,假如一切哀求都经由一个Servlet把持分派器,那末利用Servlet的filter实行语句,将一切来自扫瞄器的哀求(request)转换为UTF-8,由于扫瞄器发过去的哀求包依据扫瞄器地点的操纵体系编码,多是各类情势编码。关头一句:
request.setCharacterEncoding("UTF-8")。
网上有此filter的源码,Jdon框架源码中com.jdon.util.SetCharacterEncodingFilter
必要设置web.xml激该死Filter。
在JSP头部声明:。
在Jsp的html代码中,声明UTF-8:
设定命据库毗连体例是UTF-8。比方毗连MYSQL时设置URL以下:
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
一样平常数据库都能够经由过程办理设置设定UTF-8
其他和外界交互时可以设定编码时就设定UTF-8,比方读取文件,操纵XML等。
笔者之前在Jsp/Servlet时就接纳这个准绳,厥后利用Struts、Tapestry、EJB、Hibernate、Jdon等框架时,从未被乱码困扰过,能够说合适各类架构。但愿本计划供更多初学者分享,削减Java/J2EE的第一个拦路虎,也制止由于接纳一些一时办理计划,招致中文成绩一向呈现在新的手艺架构中。

专门做了这个例子;而java的这个例子好像就是为了教学而写的,很多教学目的的例子是不考虑优化、性能的。
小妖女 该用户已被删除
沙发
发表于 2015-1-20 17:31:25 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
分手快乐 该用户已被删除
板凳
发表于 2015-1-25 22:16:08 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
简单生活 该用户已被删除
地板
发表于 2015-2-4 06:07:23 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
只想知道 该用户已被删除
5#
发表于 2015-2-9 17:05:09 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
若相依 该用户已被删除
6#
发表于 2015-2-18 11:41:48 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
因胸联盟 该用户已被删除
7#
发表于 2015-2-26 23:53:07 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
乐观 该用户已被删除
8#
发表于 2015-3-4 08:37:02 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
兰色精灵 该用户已被删除
9#
发表于 2015-3-11 02:31:12 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
小魔女 该用户已被删除
10#
发表于 2015-3-17 19:08:39 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
灵魂腐蚀 该用户已被删除
11#
发表于 2015-3-24 20:18:03 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-9-28 19:22

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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