如何为Java企业级应用选择受管android文件传输应用解决方案

相关文章推荐
1.背景描述
并发就是可以使用多个线程同时处理不同的操作。
高并发的时候就是有很多用户访问,导致系统数据不正确。对于大型网站,比如门户网站。在面对大量用户访问,高并发请求方面,基本的解决方案集中在...
java处理高并发高负载类网站中数据库的设计方法(java教程,java处理大量数据,java高负载数据)
一:高并发高负载类网站关注点之数据库
没错,首先是数据库,这是大多数应用所面临的首个S...
对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序员头疼的问题,
但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一...
高并发的时候是有很多用户在访问,导致出现系统数据不正确、丢失数据现象,所以想到 的是用队列解决,其实队列解决的方式也可以处理,比如我们在竞拍商品、转发评论微博或者是秒杀商品等,同一时间访问量特别大,队...
一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站...
一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站...
来自火星的程序猿
java高并发解决方案
1、HTML静态化
利用freemarker静态化网页
模板引擎:一种基于模板的、用来生成输出文本的通用工具。
什么是并发问题:
多个进程或线程同时(或着说在同一段时间内)访问同一资源会产生并发问题。
加锁方法:
用synchronized关键字可以对资源加锁。
用Lock关键字也可以,它是JDK1....
他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)实现 Java 企业级应用的多语言(国际化)支持
IGT开发背景软件全球化支持,被公认为是电子商务市场成功的一个关键部分。实时请求方式的电子商务,在"提供英语或其它语言版本的问题解答"方面,面临了新的挑战。在过去几年中,为了符合 "IBM的全球化标准",无论是那些新开发的,抑或是那些以英文版用户为设计初衷的软件产品,都要求能够被全球化。为使运行在单机服务器或终端处理机上的软件,能够在多语言环境(例如互联网)中,进行正确的多语言数据处理,数据显示以及日志,软件开发者不得不耗费巨大的精力。那么,如何才能成功解决这种新的需求难题呢?全球化开发过程中,我们找到了一个有效的解决方案,即使用一个功能增强的Eclipse插件来简化全球化开发工作。在Eclipse 3.0版本中,Eclipse已为使用者提供了一个名为"Externalize String"的插件(外部化字符串插件)。虽然此Externalize String插件已具备了"提取字符串,修改代码,以及自动创建属性文件"的功能。但是经此插件处理的软件,不能在复杂的Internet环境中分离地处理多语言的数据显示和日志记录, 所以不适用于多用户的B/S应用。基于以上各因素,最终我们开发出了一个新的Eclipse插件来实现软件国际化的目标。与原先的"Externalize String"插件相比,功能增强后的全球化插件--IBM Globalization Tool(简称为IGT),不仅完善了Externalize String所具有的"抽取核心字符串,修改代码,以及自动创建属性文件"的功能,还为用户提供了一个具有 "处理客户端地域信息,响应不同用户请求,以及创建多语言日志"功能的中间层。IGT允许一个服务实例,通过用一个在全球化过程中自动创建的称之为"XX Resources"的集合类对象,使得应用程序软件能够根据客户端的实际位置信息来显示多语言数据。在这个被称为"XX Resources"集合类中,每个被称为"资源入口(Resource Entry)"类的对象,都对应地指向了某个存放在属性文件里的消息字符串。而这种 "资源入口(Resource Entry)" 对象,既可以被开发人员自行实现或者使用默认由工具生成的。 基于这种理念设计出的IGT,为我们提供了一个更为灵活和快捷的国际化J2EE 企业级应用程序的方式。下载组件需要下载并安装的组件列表
表 1. 在这篇文章中用到的组件及版本
ComponentVersionEclipse IDE3.1/3.01.0Java SDK 1.4.11.4.2Tomcat5.0.16下载需要的组件你需要的,站点被列在了资源一节中。安装IGT您需要根据您Eclipse版本, 把IGT解压到Eclipse的plugin文件夹下,重新启动Eclipse就可以完成IGT的安装了。验证IGT的安装从Eclipse界面, 如下图所示。(图1 Eclipse菜单栏和工具栏界面)实例1, 使用IGT实现一个C/S应用的全球化支持本文将首先通过一个简单的C/S应用的实例(实例1简称例1)向您介绍IGT的使用方法。例1实现一个简单的C/S应用程序, 客户机Client和服务器(Server)能够进行基于Socket方式的通信。程序模拟了位于不同地区的客户机,同时向服务器提出服务请求。服务器在接收到客户机的请求后进行相应的处理,并将结果返回给客户机,同时在服务器上按照指定语言显示日志信息。例1中用MultipleClients类和SocketServer类分别实现客户机和服务器的功能。MultipleClients类创建了5个分别来自Japan,US,France,German,China的客户机类的实例。它们同时向服务器提出logon,Add, Update,Remove, Rollback和Logoff 这5类不同的服务请求,同时接受服务器的返回信息,并将返回的信息显示在客户端。new ClientThread( addr , port, "Locale.US", "Login/Add/Remove/Update/Logoff" ),模拟了一个位于US的客户机向服务器发出连续的 "Login/Add/Remove/Update/Logoff" 五种动作的请求。SocketServer类主要实现的功能:1、服务器响应客户机请求。2、显示动作请求在服务端. 3, 返回相应动作结素消息给客户机。在未使用IGT去实现程序的全球化支持时,客户端和服务端的运行结果如下:客户端Server response to client 0[client:US] : Login server succefully!
Server response to client 4[client:GERMAN] : Login server succefully!
Server response to client 4[client:GERMAN] : Perform action Add succefully!
Server response to client 4[client:GERMAN] : Perform action Rollback succefully!
Server response to client 4[client:GERMAN] : Perform action Remove succefully!
Server response to client 3[client:FRANCE] : Login server succefully!
Server response to client 2[client:JAPAN] : Login server succefully!
Server response to client 3[client:FRANCE] : Perform action Remove succefully!
Server response to client 0[client:US] : Perform action Add succefully!
Server response to client 1[client:CHINA] : Login server succefully!
Server response to client 4[client:GERMAN] : Perform action Logoff succefully!
….服务端Server Started the service......
US logged on.
CHINA logged on.
GERMAN logged on.
FRANCE logged on.
JAPAN logged on.
US perfom action Add.
GERMAN perfom action Add.
GERMAN perfom action Rollback.
GERMAN perfom action Remove.
…从以上显示结果中,可以发现服务器的日志信息和反馈信息都是英语。对于非英语用户来说软件的易用性不好。下面,我们将在Eclipse平台下使用IGT插件实现增加服务器端程序的多语言支持,不同语言的客户得到不同语言的反馈, 并以指定语言记录日志信息。使用IGT实现C/S应用程序的多语言支持首先,选择要进行全球化的程序文件。
为使服务器能够"根据客户端的语言信息,对客户端提交的申请做出相应的语言处理,并将相应的语言显示结果返回客户端",所以我们只需要对服务器程序(SocketServer.java)中的处理信息字符串做全球化的处理,主要处理硬编码的字符串信息。然后,启动"IGT全球化向导"应用程序去完成硬编码字符串的抽取,以及生成必要的辅助类和资源文件。接下来,我们需要对服务端代码做简单的修改去设置语言参数。最后,为其他语言创建资源文件。使用"IGT全球化向导" 本节将向您介绍使用"IGT向导"应用程序的具体步骤:步骤1:在SocketServer.java的编辑窗口中,以下三个方式的任一种启动IGT全球化向导。1. 点击上图的IGT菜单2. 点击上图的IGT按钮图标3. 单击右键,在活动菜单栏中找到"Globalization Tool…"菜单项。步骤2:全球化字符串首页--资源配置窗口。在此窗口中,选择您资源入口类和资源装载类的存放路径和存放的包名。在这里, 我们将这两个类存放在IGT_CS中的nls包。默认使用源文件所在的包。点击"Next"进入下一步。步骤3:全球化字符串操作窗口。Enter common prefix for generated MessageIDs (EntryNames): IGT将自动在输入内容添加后缀,为您自动生成相应的变量名。默认为源文件类名Ignore :放弃对此字符串做全球化处理。Restore:将全球化处理后的字符还原为原来字符。String to globalize栏:IGT自动为您从源文件中抽取出来的所有字符串显示在此栏中。您可以从中选择要进行全球化处理的字符串。Substitution pattern:选择字符串替换的方式。IGT为您提供了 tologgingString()和toString()两种替换方式。这两种替换方式的区别在于:toString():此方法用于处理那些将显示给客户机的字符串信息。tologgingString():用于处理那些将写入服务器端日志的或标准输出的字符串信息。context栏:显示正在进行处理的字符串信息在源代码文件中的位置和内容。例1的字符串处理内容显示如下:(×号表示不做处理;√表示进行处理。)完成上述处理后,点击"Next",进入下一步。步骤4:此窗口显示IGT创建过程中遇见的问题。不需做如何操作直接点击"Next",进入下一步。步骤5:进入如下所示的窗口,此窗口为您显示IGT将执行的处理内容。从上图的窗口中您可以看到,IGT主要对以下两方面进行处理:A. 用新创建的SocketServerResources文件中对应的静态资源入口类对象替换掉源文件中需要进行全球化处理的字符串内容。B. 创建的新的资源文件、资源入口类、资源装载类等文件。步骤6:点击"Finish",结束IGT全球化过程。设置客户机和服务器的语言环境参数,创建资源文件经过"IGT全球化向导"的全球化应用程序的6个步骤,您已完成了全球化应用程序的大部分工作。但是,因为在本例中C/S应用的socket 服务端还不能处理客户端语言信息,我们需要对源程序作一些简单的修改,设置客户机和服务器的语言环境,创建基于各种语言的资源文件。首先, 我们在程序中添加"设定客户机和服务器的语言环境信息"的代码。IGT通过在资源加载类(ResourceLoader)中提供的setActiveLocale(Locale locale)和setLoggingLocale(Locale locale)接口分别实现了对客户端和服务器端语言环境的设置。我们需要在应用程序中调用以上两个接口。在Server.java中添加以下3部分的代码,Ctrl + Shift + O 重新组织导入的类库。1) 在SocketServer.java中添加setLocale方法(清单2前面部分注释掉的那段代码):
public static void setLocale(String str){
if(str.equals("Locale.US")){
ResourceLoader.setActiveLocale(Locale.US);
}else if(str.equals("Locale.CHINA")){
ResourceLoader.setActiveLocale(Locale.CHINA);
}else if(str.equals("Locale.JAPAN")){
ResourceLoader.setActiveLocale(Locale.JAPAN);
}else if(str.equals("Locale.FRANCE")){
ResourceLoader.setActiveLocale(Locale.FRANCE);
}else if(str.equals("Locale.GERMAN")){
ResourceLoader.setActiveLocale(Locale.GERMAN);
}根据客户机传递过来的字符串值,判断其对应的语言环境值(Locale值),并对客户机的语言环境值(Locale值)进行设定。在你的实际应用中你可以选择其他的方式来通知服务端设置合适的语言,例如,通过增加RMI调用借口,或者把其封装在连接对象中。2) 在performAction()方法体中的if (action.equals(ActionDef.LOGIN)) 语句的执行语句体前,添加这样的一条语句:"ResourceLoader.setActiveLocale(clientLocale); "。添加这条语句的目的在于:在客户机登录服务器时,获取客户机Locale信息,
if (action.equals(ActionDef.LOGIN)) {
setLocale(clientLocale);
//Bind client locale to entry object.
setLocale(clientLocale);
…3) 在main()函数中,在接受客户机请求信息的处理代码前添加如下的一条语句:ResourceLoader.setLoggingLocale(Locale.JAPAN);将服务器本地语言环境设置为JAPAN。
public static void main(String[] args) throws IOException {
ServerSocket s = new ServerSocket(PORT);
System.out.println("Server Started the service......");
//Set Server locale
ResourceLoader.setLoggingLocale(Locale.JAPAN);
}创建对应5种语言版本的资源文件:IGT会为您自动地创建一个和原程序文件名一致的默认属性文件,本例自动创建的默认属性文件是SocketServer.properties。您需要拷贝这个文件在同一目录下,并重命名为:SocketServer_en_US.properrties
SocketServer_zh_CN.properties
SocketServer_ja_JP.properties
SocketServer_de.properties
SocketServer_fr_FR.properties为了简化问题的实际操作步骤,我们只是在属性文件中的原字符串后面加上语言环境的简写名称(如zh_CN等)来标识在不同语言环境中显示的处理信息。例如:SocketServer0=\ logged on ########[ja_JP].在实际应用中,你应该替换为相应语言字符为Unicode编码。例如:SocketServer0=\ 成功登录提示: 您可以通过JDK中提供的native2ascii程序来进行Unicode编码的转化。测试全球化后的程序的执行结果完成以上的所有步骤后,您已经成功使用IGT实现了应用程序全球化。再次运行服务器端和客户端程序,您可以看到的显示结果分别如下:客户机获得的服务器返回结果。Server response to client 3[client:FRANCE] : Login server
succefully!########[fr_FR]
Server response to client 3[client:FRANCE] : Perform action Remove
succefully!########[fr_FR]
Server response to client 1[client:CHINA] : Login server
succefully!########[zh_CN]
Server response to client 2[client:JAPAN] : Login server
succefully!########[ja_JP]
Server response to client 4[client:GERMAN] : Login server
succefully!########[de]
Server response to client 3[client:FRANCE] : Perform action Add
succefully!########[fr_FR]
Server response to client 0[client:US] : Login server succefully!
Server response to client 4[client:GERMAN] : Perform action Add
succefully!########[de]
Server response to client 2[client:JAPAN] : Perform action Rollback
succefully!########[ja_JP]
…服务器显示的日志信息Locale.FRANCE logged on ########[ja_JP].
Locale.CHINA logged on ########[ja_JP].
Locale.US logged on ########[ja_JP].
Locale.GERMAN logged on ########[ja_JP].
Locale.JAPAN logged on ########[ja_JP].
Locale.FRANCE perfom action Remove.########[ja_JP]
Locale.FRANCE perfom action Add.########[ja_JP]
Locale.JAPAN No action to perform.########[ja_JP]
Locale.GERMAN perfom action Add.########[ja_JP]
Locale.CHINA No action to perform.########[ja_JP]
Locale.JAPAN perfom action Rollback.########[ja_JP]
Locale.CHINA No action to perform.########[ja_JP]
Locale.US perfom action Add.########[ja_JP]
…比较使用IGT前、后的程序执行结果,服务器程序不仅能为客户机反馈基于客户机语言版本的显示信息,还能以指定语言的记录日志信息。实例2,使用IGT实现一个简单的B/S类型的应用的全球化支持上节向您介绍了如何使用IGT全球化C/S类型的应用程序,本节将通过一个简单的B/S应用实例(实例2简称例2)为你演示使用IGT全球化B/S应用程序的全部过程。你可以通过本页的下载链接去获得示例工程。并工程中WebContent 文件夹以/IGT_BS部署在Tomcat上。例2演示了一个简单的web响应。网站服务器程序够根据访问网站的用户的语言环境,向用户返回对应其语言的消息,同时在服务器端,根据指定的语言记录下用户的活动日志信息。1.welcome.html:一个简单的页面,用户可以选择登陆和购买三种商品。在单击Perform按钮后,简单的返回成功执行的消息。2. StoreActionBean:一个简单Javabean用来执行业务逻辑针对用户请求,在这里仅仅返回反馈信息,并记录日志。例如,[Logging Locale:zh_CN]Done to add chocolate!3.StoreServlet 处理用户请求,调用后台的Javabean,组织响应信息。例如,[Browser's locale is: zh_CN] Done to add chocolate!测试模拟使用语言为的用户登录网站,您可以通过修改浏览器的默认Language 通过 点击工具 & Internet 选项 & 常规 & 语言, 移动"德语"到顶部。登陆welcome.html,点击Perform按钮。日志[Logging Locale:zh_CN]Login Successfully!从以上两个图中可以看出:后台的Javabean没有实现多语言支持使用IGT全球化B/S类型的应用程序首先,确定需要进行全球化处理的源程序文件。在这里我们只集中精力于业务逻辑层StoreActionBean.java。其次,激活"IGT全球化向导"进行处理。最后,创建和配置相应的资源属性文件以及设置服务器和客户的语言环境参数。使用"IGT全球化向导" 确定好需要作全球化处理的源文件后,接着的就是使用IGT向导来完成全球化过程。具体的操作步骤,本文已在例1做了详细的介绍,例2中就不再作赘述了。1. 选择IGT_BS工程的nls包作为输出路径,单击Next。2. 全球化字符串操作窗口中,修改配置如下图。单击Next。即对那些返回浏览器的信息做toStrring()方式的处理,对服务器的日志信息做toLoggingString()的处理。3. 单击Finish结束。创建属性文件,设置浏览器和服务器的语言环境参数完成IGT向导的相关操作后,接下来需要在进行全球化的源程序文件中,设置服务器Locale和浏览器的Locale,以及创建所需语言版本的资源属性文件。I. 设置服务器和浏览器Locale。在StoreActionBean.java中取消以下两条语句的注释,分别完成服务器日志和浏览器的语言地域的设置, Ctrl + Shift + O 重新组织引用。
ResourceLoader.setLoggingLocale(_serverLocale);
ResourceLoader.setActiveLocale(_clientLocale);II. 创建所需语言版本的属性文件(Property File):创建对应5种语言版本的资源文件:IGT会为您自动地创建一个和原程序文件名一致的默认属性文件,本例自动创建的默认属性文件是StoreActionBean.properties。您需要拷贝这个文件在同一目录下,并重命名为:StoreActionBean_en_US.properrties
StoreActionBean_zh_CN.properties
StoreActionBean_ja_JP.properties
StoreActionBean_de.properties
StoreActionBean_fr_FR.properties类似于例1,我们也只是在原字符串中添加了一些说明语言版本的文字。在实际应用中,你应该替换相应语言字符为Unicode编码。测试:经过以上步骤的处理,您已完成例2程序的全球化全过程。重新发布一下这个web应用,分别修该浏览器的语言设置为"德语","中文",登录http://localhost:8080/IGT_BS/Welcome.html。 单击Perform按钮,浏览器获得服务器的返回结果分别如下:比较浏览器前后的显示结果,可以发现服务器返回给浏览器的消息是根据浏览器的语言设置自动选择的。同时从服务器显示的日志信息中,您可以发现服务器能不受浏览器语言环境的影响,根据自身语言环境正确地显示日志信息。[Logging Locale:zh_CN]Done to add chocolate!####[zh_CN]####
[Logging Locale:zh_CN]Done to add chocolate!####[zh_CN]####实例3,使用IGT实现一个简单的RMI类型的应用的全球化支持在开始之前,你需要通过下载链接去获得实例工程IGT_RMI,并在命令行中执行以下名令生成RMI的存根,
{$IGT_RMI_Project_location}&rmic server.RMIObjectImpl在这个工程中我们仅需要对RMIObjectImpl.java应用IGT, 你可以使用相似的步骤去完成全球化向导。简要设置如下。在完成全球化向导之后,添加如下行在RMIObjectImpl的构造方法中ResourceLoader.setLoggingLocale(Locale.getDefault());添加如下语句在setClientLocale()方法中。Ctrl + Shift + O 重新组织引用。ResourceLoader.setActiveLocale(_clientLocale);创建对应5种语言版本的资源文件并为其增加标示,RMIObjectImpl_en_US.properrties
RMIObjectImpl_zh_CN.properties
RMIObjectImpl_ja_JP.properties
RMIObjectImpl_de.properties
RMIObjectImpl_fr_FR.properties测试在Eclipse 中启动RMIServer, 并运行RMIClient程序。执行结果如下客户端反馈消息Done to add ####[zh_CN]####1998
Done to remove ####[zh_CN]####9
Done to add ####[de]####1998
Done to remove ####[de]####9服务端日志RMIServer starts on //localhost/RMIServer
Client's locale is: ####[zh_CN]####zh_CN
Perform Add ####[zh_CN]####1998
Perform Remove ####[zh_CN]####9
Client's locale is: ####[zh_CN]####de
Perform Add ####[zh_CN]####1998
Perform Remove ####[zh_CN]####9可以看出RMI应用已经成功的实现了全球化语言支持。结束语在本文中,我们已经介绍了如何通过IGT实现C/S, B/S, RMI企业级应用的多语言 (国际化)支持。您可以感受到通过使用IGT,实现多种类型的Java企业级应用的国际化变的如此简单。另外IGT还提供了方便的增删改的功能,使得你的国际化支持的开发工作更加的简洁高效。如果你对IGT有更多的建议,你可以登陆论坛发表你的观点或联系我们。
下载资源介绍。
contains a plethora of information about Tomcat.
on developerWorks.
下栽 从alphaWorks.
下栽 从Eclipse.org.
下栽 从Jakarta download page.
下栽 从the Sun Web site.
下栽 从the Sysdeo Web site.
浏览最新的 从IBM .
添加或订阅评论,请先或。
有新评论时提醒我
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=Open sourceArticleID=155989ArticleTitle=实现 Java 企业级应用的多语言(国际化)支持publish-date=关键词搜索
热门推荐:
Java与数据库:JDBC的解决方案介绍
JDBC是通用的SQL(结构化查询语言)数据库访问框架,带有简单且功能强大的应用程序接口(API)。利用JDBC API,Java开发 人员可以在单一的标准化功能库中编码,生成独立于数据库管理系统(DBMS)的Java应用系统。JDBC以X/Open组织的标准定义SQL调用级接口(Call Level Interface,CLI)。X/Open组织的宗旨是提供基于开放 式系统的 数据存取标准,实现相互兼容。JDBC就是使用单一标准化界面存取多种数据源,以实现应用系统间的互操作。
技术分类:
行业属性:
相关厂商:暂无机构
文档大小:N/A
文档类型:doc
日期: 10:51:23
本文介绍了什么是Java,AIX下的Java版本,Java的性能准则,AIX提供的监视Java的工具,以及如何在AIX用户环境下进行Java应用程序性能调优。
分享人:&&文件:36.5 KB
NetBeans可能是JSR-296项目的最大赢家,它能帮助开发人员在他们的项目中采取下一步行动,如果没有NetBeans,他们可能不知道该怎么做,如他们用JSR-296中的SingleFrameApplication类代替了JFrame,因为使用它能更容易与JSR-296(我拒绝把它称为Swing应用程序框架,SAF,因为这个名字太自大了,好像就没有其它Swing应用程序框架似的)接轨,特别是在NetBeans IDE的帮助下,许多开发人员都这样做了,迅速地看到了他们的开发成果。
分享人:&&文件:34 KB
要利用UML设计Java应用程序,仅仅使用类图来描述这些静态关系,利用可视化工具,要实现Java应用程序的代码自动生成,是远远不够的。我们还必须描述各种类相互之间的协作关系、动态关系,如时间序列上的交互行为。其中UML序列图就是用来描述类与类之间的方法调用过程(或消息发送)是如何实现的。本文通过一个具体的应用程序的设计与实现过程,详细说明了利用UML序列图设计Java应用程序,使得开发过程标准化、可视化,代码编程简单化。
分享人:&&文件:113 KB
最近笔者学了一些PHP和Ruby的东西,就将Java、.Net、PHP、Ruby的应用做个比较。
分享人:&&文件:32 KB
最近,到处可以看到大量的文章:关于Java将会消失取而代之的是脚本语言或其他汇编语言。不,那种情况是不会发生的。本文,作者根据许多数据给出了论证。
分享人:&&文件:105 KB
本文意图展示Java比Ruby更加具有生产力。作者通过JPA注解下的POJO以及OpenXava模型驱动框架,进行同样功能应用的开发。结果是,这种方法通过较少的代码以及开发时间,完成了更加强大的应用。
分享人:&&文件:467 KB
Relevance咨询公司的Stuart Halloway最近编写了一个关于“Ruby vs. Java之怪谈”的系列博客文章。这个系列文章的灵感,源自他最近从一个从零起步、没有先前约束的Ruby项目转回一个成熟完备的Java项目后的心得体会。
分享人:&&文件:32 KB
“使用Ruby具有风险”是一种普遍的看法,因为使用新的语言天生是有风险的。随着Ruby on Rails逐步进入到主流的开发领域中,这样的风险将会随时间逐渐降低,因为有逐步增长的开发者群、组件相关的书籍、以及业务合作伙伴与你沟通交流。本文将要探讨Java与Ruby语言迁移时风险预测方面的问题。
分享人:&&文件:44.5 KB
经过了13年的时间,现在我们检视J2ME的发展历史,我们可以发现,虽然在1999年,Java被切割成J2SE、J2ME、J2EE,所以有了J2ME这个名词的出现。但是Java并非1999年开始才开始发展嵌入式系统上的应用。其实,Java本来就是为了嵌入式系统而发展的一种架构。即使目前大家多半将Java 的应用聚焦于企业上的J2EE应用。但是严格来说,J2ME才是Java真正“回归本心”的领域。
分享人:&&文件:N/A
Java和J2EE是两个不同概念,Java不只是指一种语言,已经代表与微软不同的另外一个巨大阵营,所以Java有时是指一种软件系统的流派,当然目前主要是.NET和Java两大主流体系。J2EE可以说指Java在数据库信息系统上实现,数据库信息系统从早期的dBase、到Delphi/VB等C/S结构,发展到B/S结构,而J2EE主要是指B/S结构的实现。J2EE又是一种框架和标准,框架类似API、库的概念,但是要超出它们。如果需要详细了解框架,可先从设计模式开始学习。
分享人:&&文件:N/A
用来实现添加、删除、修改操作的共用方法。分为两个方法,一个是设置PreparedS对象参数的方法。一个是执行泛型PreparedS对象的。
分享人:&&文件:44.5 KB
Web 的工作基于客户机/服务器计算模型,由Web 浏览器(客户机)和Web服务器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信。根据HTTP协议的会话过程,本文通过一个实例,说明了如何巧用Java实现GET请求的Web服务器程序。
分享人:&&文件:N/A
对于主要关心文档数据内容的应用程序,Java XML数据绑定是一种代替XML文档模型的强大机制。本文中将介绍数据绑定,并讨论什么使它如此令人瞩目。然后,展示如何利用Java数据绑定的开放源代码Castor框架来处理日益复杂的文档。如果您的应用程序更多的把XML作为数据而不是文档,您就会愿意了解这种处理XML和Java技术的简单有效的方法。
分享人:&&文件:N/A
责任链模式就是这种“推卸”责任的模式,你的问题在我这里能解决我就解决,不行就把你推给另一个对象。至于到底谁解决了这个问题了呢?本文将为大家介绍基于Java的责任链模式。
分享人:&&文件:N/A
JMF在所有的Java类型中都可用,这使在客户端上不必要有任何特定的媒体技术就可以部署媒体--所需要的只是J2SE Java运行时间。更重要的是它能利用.jar文件格式的一些性能把解码器和媒体组成到一个文件中,创建一个\\\\\\\"自我播放电影\\\\\\\",使用了象WinZip和StuffIt这样的压缩应用程序大致相同的方式来创建自我展开文档。 我们把此分为三个阶段:使JMF能够播放.jar文件中的媒体;只使用需要播放本地媒体所需的JMF的一部分创建一个轻量级.jar文件。
分享人:&&文件:N/A
Java是一种面向对象语言,java中的类把方法与数据连接在一起,并构成了自包含式的处理单元。但在Java中不能定义基本类型(primitive type),为了能将基本类型视为对象来处理,并能连接相关的方法,Java为每个基本类型都提供了包装类,这样,我们便可以把这些基本类型转化为对象来处理了。这些包装类有:Boolean、Byte、Short、Character、Integer等。值得说明的是,java是可以直接处理基本类型的,但是在有些情况下我们需要将其作为对象来处理,这时就需要将其转化为包装类了。
分享人:&&文件:N/A
对于系统中一个已经完成的类层次结构,我们已经给它提供了满足需求的接口。但是面对新增加的需求,我们应该怎么做呢?如果这是为数不多的几次变动,而且不用为了一个需求的调整而将整个类层次结构统统地修改一遍,那么直接在原有类层次结构上修改也许是个不错的主意。但是往往我们遇到的却是:这样的需求变动也许会不停的发生;更重要的是需求的任何变动可能都要让你将整个类层次结构修改个底朝天……。这种类似的操作分布在不同的类里面,不是一个好现象,我们要对这个结构重构一下了。那么,访问者模式也许是你很好的选择。
分享人:&&文件:N/A
目前整个开发社区对AOP(Aspect Oriented Programing)推崇备至,也涌现出大量支持AOP的优秀Framework,--Spring, JAC, Jboss AOP 等等。AOP似乎一时之间成了潮流。Java初学者不禁要发出感慨,OOP还没有学通呢,又来AOP。本文不是要在理论上具体阐述何为AOP, 为何要进行AOP . 要详细了解学习AOP可以到它老家http://aosd.net去瞧瞧。这里只是意图通过一个简单的例子向初学者展示一下如何来进行AOP。
分享人:&&文件:N/A
图片文件格式转换最核心的问题就是要解决各种图片格式的编码和解码,推荐用jimi包,可从/products/jimi/下载该包及其源码和demo。需要注意的是:jimi提供了对几乎所有图片格式的解码支持,但是为提供gif和tif/tiff格式的编码api,gif编码问题在网上可以找到县相关的源码,tiff jai:/products/java-media/jai/index.jsp提供了它的编码。
分享人:&&文件:N/A
在JAVA的编程中,您也许会遇到FTP方面的编程,本文就来演示如何实现它。本程序是由JBUILDER2.0来开发的,
FtpList 部分是用来显示FTP服务器上的文件(附图略)。GetButton部分为从FTP服务器下传一个文件。PutButton 部分为向FTP服务器上传一个文件。别忘了在程序中还要引入两个库文件(import sun.net.*,import sun.net.ftp.*)。以下是这三部分的JAVA源程序。1)显示FTP服务器上的文件,2)从FTP服务器上下传一个文件,3)向FTP服务器上上传一个文件。
分享人:&&文件:N/A
1 2 3 4 5 6 7 8 9 10
Ignite 2017大会定于9月25日至29日在美国佛罗里达州中部奥兰多举行。这场为期5天的大会主要针对商业应用开发商、企业级应用以及各种微软工具,从而为企业用户提供更完善的服务不断提升他们的生产力。....
最新白皮书
1 2 3 4 5 6 7 8 9 10
整体竞争力榜
云计算能力榜
最具人气榜
&北京第二十六维信息技术有限公司版权所有.京ICP备号-7 京ICP证161336号 京公网安备 00号}

我要回帖

更多关于 安卓文件传输应用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信