Struts应用技术深入(1)

上传人:206****923 文档编号:57536002 上传时间:2018-10-22 格式:PPT 页数:33 大小:1,001KB
返回 下载 相关 举报
Struts应用技术深入(1)_第1页
第1页 / 共33页
Struts应用技术深入(1)_第2页
第2页 / 共33页
Struts应用技术深入(1)_第3页
第3页 / 共33页
Struts应用技术深入(1)_第4页
第4页 / 共33页
Struts应用技术深入(1)_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《Struts应用技术深入(1)》由会员分享,可在线阅读,更多相关《Struts应用技术深入(1)(33页珍藏版)》请在金锄头文库上搜索。

1、Strust应用技术深入(1),在本讲您能了解如下知识点 Strust中的多配置文件 在Struts中配置DataSource 实现国际化的Struts Web应用系统 在Struts中处理中文编码问题,1、Strust中的单模块多配置文件,(1)为什么要提供该技术的支持 在一个实际的应用系统中会有多各不同的子模块,同时每个不同的模块是由不同的开发人员来实现的 如果只提供一个配置文件,将会导致修改的冲突的问题,(2)Struts支持多配置文件 在Struts1.1以上提供了对多配置文件的支持,也就是为ActionServlet同时指定多个xml配置文件 这种方法可以很好地解决修改冲突的问题,不

2、同的开发人员可以在不同的配置文件中完成自己的Action、ActionForm等的设置,同时指定多个xml配置文件,文件之间以逗号分隔,(3)实现的方法:在Web.xml文件为ActionServlet提供各个配置文件的定位信息,各个文件名称之间以逗号分隔,(4)多个配置文件的存放位置,一般仍然放在WEB-INF的目录下,同时保证有一个主配置文件struts-config.xml和若干个子配置文件struts-config_XXXX.xml,(5)各个模块的配置文件的命名规则 仍然采用struts-config_XXXX.xml,而其中的“XXXX”代表子模块的名称 如: struts-con

3、fig_userManager.xml代表用户管理模块,(7)请见文档中的应用示例,(6)各个配置文件中的配置内容的划分 struts-config.xml主配置文件中的内容存放与全局信息相关的配置项目 struts-config_XXX.xml子配置文件中的内容存放与该子模块相关的特定的局部配置项目,2、在Struts中配置DataSource,(1)JDBC2.0中的javax.sql.DataSource接口的实现,注意:它是由不同的应用服务器平台最终来实现的,目前各个主流的J2EE应用服务器都提供了对DataSource的支持,您知道为什么要使用数据库连接池吗?,(2)Struts中的

4、DataSource管理器 在Struts中也提供了对DataSource的支持实现(即Jakarta提供的公共连接池实现-Apache 的DBCP),其类的全路径为mons.dbcp.BasicDataSourceStruts DataSource管理器是通过在Struts配置文件struts-config.xml中进行配置和定义,(3)基于Struts的Web应用中的数据库连接方案 使用在容器中所提供的对DataSource的支持实现 使用在Struts本身所提供的对DataSource的支持实现,最好使用Struts本身的DataSource以达到与容器部署的无关性,与Struts Da

5、taSource相关的*.jar包,注意:在www.apache.org中所提供的Struts的系统包分为核心API的*.jar文件和DataSource相关的*.jar包文件两部分,(4)在Struts中实现数据源的基本步骤 下载与Struts DataSource相关的*.jar包,修改本 Web应用程序的struts-config.xml文件以添加对数据源的配置,如果有多个不同的数据源时应该以Key值区分,在Action类中获得该数据源对象,然后利用DataSource接口中的getConnection()方法获得Connection对象,并将该Connection对象传递给DAO组件,

6、(5)应用示例-NetBook,3、实现国际化的Struts Web应用系统,(1)国际化和本地化程序概述 国际化(Internationalization - i18n)就是设计一个应用系统,以使之能够不经过工程的修改就可以使用于各种不同的语言和区域场所 本地化(Localization- l10n) 通过添加特定场所的组件和翻译文本来使软件适用于特定的场所和语言的过程 如我们经常所进行的“汉化”工作,(2)本地化那些内容 当一个软件产品需要在全球范围应用的时候,我们就得考虑在不同的地域和语言环境下面的使用情况(也就是国际化问题) 最简单的要求就是UI上的信息上能用本地化语言来显示,(3)本

7、地化的主要内容 提示和帮助语言的版本问题 界面定制个性化问题 日期和货币等,(4)为什么要对系统进行国际化 我们花费了大量的精力来开发自己的Web应用,当然都希望在应用的开发上得到更大的投资回报。 因为互联网连接着世界各地,每个应用都可以面对国际的受众。 如果某个应用可以被本地化,那么它就可以被更多的访问者所访问,(5)国际化的应用系统的基本要求 能够自动地区分不同的应用场所(语言环境) 使用同一个可执行包根据不同的场所显示相应的信息和提示; 在不重新编译的情况下通过提供对新的场所的扩展包就能够自动地对新的语言环境加以支持; 自动格式化与场所和语言相关的敏感条目和信息(比如日期和货币),为相应

8、的场所和语言支持的格式,我们可以观察一下,google是否满足上面的四点要求!,如果我们也要开发此种系统,哪应该怎样来面对不同的语言的人群呢?,(6)Java 语言平台下对国际化的技术支持,(7)国际化程序的特征 文本元素在程序中不进行硬编码,它们存储于源代码之外,可自动进行动态检索 通过使用附加的本地化数据,同一可执行程序可在世界各地运行 支持新的语言时无须重新编译,并且与文化有关的数据(如日期和货币),其格式根据最终用户的地区和语言而定并可以迅速进行本地化,(9)资源文件的命名规则,(8)在Struts中实现国际化Web应用系统的基本思路 把资源文件按照各个语言翻译一遍 把这些文件按照国际

9、化程序的要求命名好并放置在同一个目录即可。 例如 ApplicationResource_en_US.properties ApplicationResource_zh_TW.properties,(10)各个国家和语言的标示-参考IE浏览器内的标示,(11)应用实例:创建国际化Web应用系统,将NetBook项目国际化,第一步:建立默认的资源文件,并在其中提供本项目的各个字符内容,注意 当容器无法找到与某一字符集相匹配的资源文件时将采用该默认的资源文件中的内容 一般该文件中的内容应该为英文以实现通用化,第二步:在Struts的struts-config.xml文件中添加对资源文件的定位的说明

10、,默认的资源文件名称,根此容器可以获得其它语言的资源文件名称,说明资源文件所在的相对目录名称(以classes为启始目录),注意:因此资源文件的物理目录定位应该如下所示,第三步:建立各个语言平台下的资源文件 中文的资源文件ApplicationResources _zh_CN.properties 美国的资源文件为ApplicationResources_en_US.properties 台湾的资源文件为ApplicationResources_zh_TW.properties,您能够看懂这些信息吗?,因为java的国际化是通过unicode码来实现,所以在ApplicationResourc

11、es_zh_CN.properties文件中应该存放中文字符串的unicode码; 执行JDK中所带的native2ascii转换工具可以实现转换,注意:,第四步:改变浏览器中的不同语言模块来进行测试 (1)以英文环境执行该Struts Web程序,重新启动IE后,输入该Struts页面的URL地址后,将见到英文的页面内容,安装英语(美国)语言模块打开IE的“工具”-“Internet选项”菜单,“常规”选项卡,点击其中的“语言”按钮,添加“英语(美国)-en-us”语言,将其他的语言删除。,(2)以中文方式执行该Struts Web程序,重新启动IE后,输入该Struts页面的URL地址后,

12、将见到中文的页面内容,安装中文语言模块打开IE的“工具”-“Internet选项”菜单,“常规”选项卡,点击其中的“语言”按钮,添加“中文(中国)-zh-cn”语言,将其他的语言删除。,1、问题的起源 (1)字符编码集 (2)Unicode编码集及本地化转换 Java 语言内部是用 Unicode 表示字符的,遵守 Unicode V2.0。 Java 程序无论是从/往文件系统以字符流读/写文件,还是往 URL 连接写 HTML 信息或读取参数值,都需要进行Unicode本地编码集的转换。 *.java-*.class-show,4、在Struts中处理中文编码问题,(3)为什么在Java平台

13、开发中经常会出现乱码问题 从理论上来说,这些根据Unicode字符集设置而进行的向本地字符集进行转换的工作不应该产生太多问题。 而事实是由于应用系统的实际运行环境不同,以及系统或应用开发工具、数据库系统等实现的不规范,转码时出现的问题,乱码多数是由于编码与解码所使用的方式不同造成的,2、了解Web应用中的数据流,其中容易出现乱码的节点是在 浏览器-Web服务器中的Web组件 Web组件 -数据库系统,3、Html和JSP页面中的中文字符串的处理 (1)静态HTML页面中文信息不能正确显示,(2)JSP页面的中文提示信息在浏览器端不能正确显示 ,4、HTTP请求中的中文字符串的处理-非Strut

14、s框架的Web组件 (1)原因:由于在默认的情况下,浏览器发送请求采用“ISO-8859-1”的字符编码,(2)采用前端Filter进行统一转换 request.setCharacterEncoding(“GB2312“);,(3)在某一组件(JSP页面或者Servlet)中进行如下的编码方法的转换 request.setCharacterEncoding(“GB2312“); (4)也可以采用如下的方法对所接受的参数进行编码转换(AJAX),(5)对于Weblogic服务器,也可以在web.xml文件中加入如下的设置项目,5、HTTP请求中的中文字符串的处理-Struts框架的Web组件 (

15、1)采用与Servlet相同的解决方法,(2)原因,(2)解决的方法:定制ActionServlet类并通过对它进行继承以扩展它 (3)在本ActionServlet类中重写process方法,注意:一定要对基类中的process()方法进行调用。也可以继承RequestProcessor类并重写processPreprocess方法,(4)修改web.xml文件以设置该ActionServlet类并提供其它的初始参数,(2)或者在WebLogic.xml中进行如下的设置,6、HTTP响应中的中文字符串的处理 (1)在Servlet中利用setContentType(),7、有关数据库中的读写

16、时的中文字符串的处理 (1)处理从数据库中读出数据的中文编码问题 如果数据库系统的字符编码为“GB2312”,则直接可以读出而无需要进行转换。 如果数据库系统的字符编码为“ISO-8859-1“,那么必须先对来自数据库的数据进行转换,然后才能使用。,(2)处理向数据库写入数据的中文编码问题在向中文SQlServer2000插入某一中文字段之前进行编码转换,然后再将userName 的内容写入到数据库表的字段中。,1、子曰:“学而不思则罔,思而不学则殆。” “学而时习之”,2、子曰:“知之者不如好之者,好之者不如乐之者”,3、子曰:“三人行,必有我师焉”,4、子曰:“我非生而知之者,好古,敏以求之者也”,5、师者:“传道、授业和解惑”,努力学习以实现自己的人生理想和目标,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号