当前位置:首页 » 净水方式 » javaedi开源

javaedi开源

发布时间: 2021-01-28 18:34:42

『壹』 高分求一篇关于JAVA在虚拟中的应用的论文,质料也行阿,急。求高手。

摘 要 该文介绍了如何运用WebWork、Sitemesh、Hibernate等JAVA开源技术来设计与实现电子商务实验模拟系统,给出了系统结构、功能及实现方案。
关键词 电子商务;实验模拟系统;Java;开源技术

1 引言
目前高校电子商务专业相关课程的教学迫切需要建立电子商务实验软件平台,该平台应实现包括B2C、C2C、B2B、电子数据交换(Edi)、现代物流应用系统、电子金融、安全电子交易身份认证等实施电子商务必不可少的软件功能模块。电子商务的高速发展对软件开发技术提出了强有力的挑战,由于电子商务的内部逻辑复杂,安全性要求苛刻,商务业务规则的变化较快,这就要求电子商务实验模拟系统的开发技术能够强大、灵活以适应电子商务实验教学的需求。
在电子商务系统的设计与开发中,迫切需要解决的问题有:易维护性、易扩充性、可测试性、可靠性、高性能和安全性。目前的N-tier软件体系结构较好的解决了上述问题。通常将系统分成表现层、商务逻辑层、持久存储层。
J2EE规范针对多层应用的设计、集成、性能、安全性和可靠性等诸多方面,为应用系统的开发提供了表现层、商务逻辑框架、持久化、事务、安全和日志服务等方面的技术规范。目前符合J2EE规范的开源项目如雨后春笋般涌现,其中不乏优秀的技术。利用现有的优秀开源技术可以大大降低应用系统的开发周期和开发成本,同时也能提高整个系统的灵活性。
2 本系统所使用的开源技术
对于现有较成熟的WEB应用框架而言,其解决的主要问题无外乎下面几部分:
1)将客户端的WEB页面请求中的输入数据封装为一个(请求)数据对象。
2)对WEB请求中的数据进行合法性验证。
3)根据不同的WEB页面请求,调度相应的商务逻辑对象进行处理,并将(请求)数据对象作为参数传入。
4)商务逻辑对象完成业务规则的处理后,返回一个结果数据对象。
5)通过表现层将结果数据对象中的数据展现给用户。
6)业务实体的持久存储。
WebWork2、Sitemesh、Hibernate、Junit、XDoclet、Ant等开源项目都是很成熟的开源项目。本系统的设计与实现通过综合利用以上开源技术,非常轻松地解决了上述问题。
WebWork是由OpenSymphony开源组织开发的,致力于组件化和代码重用的J2EE Web框架。WebWork由Xwork1和WebWork2共两个项目组成。
Xwork1简洁、灵活功能强大,它是一个标准的Command模式实现,并且完全从web层脱离出来。Xwork提供了很多核心功能:前端拦截器(interceptor),运行时表单属性验证,类型转换,强大的表达式语言等。拦截器(interceptor)就好像是一张过滤网,它用来对客户端的调用进行拦截,并对其进行一些处理,比如检查客户端调用的合法性、实现安全策略、对事务进行支持等。
WebWork2建立在Xwork之上,处理HTTP的响应和请求。WebWork2使用ServletDispatcher将HTTP请求的变成Action(由Action类调用商务逻辑对象完成业务处理),实现session及application范围的映射,以及request请求参数映射。每一个Action不依赖任何层和任何容器。他们通过ActionContext来使用request和response对象,实现了WEB层和逻辑层的分离。Webwork的Action能够通过赋予一定的属性值来运行,而不必启动web容器来进行测试,增强了WEB组件的可测试性。
WebWork2支持多视图表示,视图部分可以使用JSP、Velocity、FreeMarker、JasperReports、XML等。
Web应用开发中,我们常常面临如何保证输入数据合法性的头痛问题。实现输入数据校验的方法无外乎两种:页面Java Script 校验、服务器端执行逻辑代码之前进行数据校验。前者的系统安全性难以保证,通常作为输入数据校验的辅助技术。
WebWork使用Xwork的验证框架进行验证处理,它可以通过配置interceptor(拦截器)来激活。它可以为每个需要验证的Class指定一个xml验证文件,也可以为一个Class在不同的情况下指定不同的xml验证文件。WebWork可以给每个Action类指定对应的验证文件,也可以给Action类的属性字段指定验证文件。最终通过拦截器来组装Action和其验证文件,使得逻辑层不需要考虑额外的数据验证,简化了业务处理逻辑。
Sitemesh也是opensymphony开源组织开发的j2ee应用框架之一,它主要用来对Web页面进行布局管理,并且致力于为很多页面组成的大型网站提供统一的风格、导航和布局功能。SiteMesh通过filter截取request和response,并给原始的页面加入一定的装饰(Decorator),然后把结果返回给客户端,并且被装饰的原始页面并不知道SiteMesh的装饰,避免了因页面之间互相包含造成的页面间的耦合。
本系统采用面向对象的设计与实现,而系统使用关系型数据库管理数据,因为系统中的持久对象需要借助关系型数据库存储,从而带来了对象和关系的映射问题。很难做到把关系表记录完整的映射到持久对象的关系上来,这主要体现在多表的关系映射类型多样,关联的数据表个数难以确定,可能是一个表映射多个持久对象,有可能是多个表映射一个持久对象,更有可能的是表的某些字段映射到一个持久对象,但是另外一些字段映射到别的持久对象上。对象如果使用直接的数据库操作来存取成员以实现持久对象编程的话,对存在1:N关系的持久对象的查询其实就是1+n次对数据库的SQL,势必引起数据库存取效率的大幅下降。
Hibernate则是持久层设计的最佳技术,它优雅地解决了上述各种对象和关系的映射问题。它是开源和免费的, API开放,当其本身功能不够用的时候,可以自己编码进行扩展。
Junit用于类模块的单元测试。XDoclet、Ant是支持项目自动重建和文档自动生成的优秀开源工具,它们可以大幅提高程序员的工作效率和工作质量。
3 系统总体设计
本系统的主要目标是实现模拟电子商务系统以便提供师生进行相关实验的软件平台。重点在于模拟电子商务环境中的交易与管理各方的业务流程,同时便于交易各方根据需要制定相应的业务规则,因此系统的设计应能适应商务规则的变化,对部分功能的实现没有必要真实的再现,比如安全认证子系统中认证中心的安全认证服务的实现。另外,本系统还应加强实验过程管理的功能设计,以便师生快速掌握实验的过程和进度,能够对实验的成绩进行自动处理并提供相关查询。
在一次实验中,学生通常在多个虚拟企业中扮演多种不同的业务角色,系统应提供快速的角色转换功能,从而便于学生了解不同业务流程相关操作之间的关系及相互影响。
基于以上目标,系统共分两大子系统:商务系统、实验系统。
商务系统共分五个二级子系统:电子银行系统、认证系统、交易系统、企业业务管理系统、物流系统。实验系统分为学生自助、实验管理二个子系统分别供学生、教师使用。
在每个子系统中,根据不同的操作人员角色划分子模块,例如“交易系统”(系统结构如图1),分成“交易大厅”、“会员企业后台管理”、“交易中心后台管理”三个子系统,在会员企业后台管理中,能够根据当前学生所承担的业务角色列出其涉及的多个企业供其选择。整个系统采用单点登录验证,从而减少学生在使用各模块功能时的登录操作,避免了当前一些较流行的实验模拟系统需要学生记忆多个密码,同一次实验中需要多次重复登录的问题,让学生更加关注业务流程,提高实验效率。

图1 交易系统结构图

实验系统分成学生自助、实验管理两个子系统。学生通过学生自助子系统可以查询教师布置的实验任务,已做实验的成绩,实验操作步骤的主要错误,从而了解不足之处及时加以改进。教师通过实验管理模块可以布置实验任务,查询学生实验进程和实验成绩,了解学生实验过程中普遍存在的问题以便及时加以指导。
系统的分析与设计采用面向对象的UML建模语言进行。在充分的系统需求分析后,通过UML的用例图和顺序图对系统的概念模型进行了描述,然后进行较详细的设计,描绘出系统的类图及类关系图,并建立了初步的数据模型。通过使用Borland公司的Together建模工具,我们实现了系统模型与源码、数据库的双向自动转换。
为了适应本系统开发的工程化需要,将开发人员分为如下几类:a、系统分析员;b、后台组件开发程序员(主要是Action类与业务逻辑类);c、后台组件测试人员;d、前台用户界面程序员(主要是JSP程序员+美工);e、前台测试技术人员。通过Sitemesh和WebWork的结合,实现了各模块的用户界面与后台组件的独立开发与测试,有利于人员分工,大大降低了开发人员用于信息交流的时间,提高了系统开发的效率。
4 系统实现
4.1、运行环境
为适应高校计算机系统软件环境的多样性,本系统可运行于任一种符合J2EE规范的WEB容器,大多数流行的关系型数据库。本系统开发时选择了开源项目Tomcat及Mysql。
4.2 WEB应用的配置
限于篇幅,仅列出部分关键配置信息。基于J2EE规范,本系统的目录规划如下(表1):
父目录 子目录 描述
/ src Java类源代码
/ lib 系统需要的第三方类库文件
/ docs 系统开发文档
/ ROOT WEB应用根目录
/ROOT WEB-INF WEB应用配置目录
/ROOT/
WEB-INF classes Java类字节码文件目录
/ROOT _decorators sitemesh装饰器页面

表1 系统目录结构
在/ROOT/WEB-INF中,存放web.xml、sitemesh.xml、decorators.xml等配置文件。
WEB视图层的配置:
本系统设计了多个装饰页面,下面列出主装饰页面在/WEB-INF/decorators.xml中的配置信息:
<decorators defaultdir="/_decorators">
<decorator name="main" page="main.jsp">
<pattern>*</pattern>
</decorator>
</decorators>
在主装饰页面main.jsp中进行页面的布局,形成较为流行的“上-左中右-下”的页面结构,上部显示系统标识及首页链接、各主要子系统链接,下部显示版权申明及联系方式,左部及右部显示常用模块,中部为当前页面的主功能操作区。其JSP页面主体部分列出如下:
<table width="100%" align="center">
<tr><td width="134" valign="top">
<page:applyDecorator name="simple"
page="/sitemesh/left.jsp"/></td></tr>
<tr><td width="488" valign="top">
<page:applyDecorator name="simple"
page="/sitemesh/middle_top.jsp"/><br>
<decorator:body /><br>
<page:applyDecorator name="simple"
page="/sitemesh/middle_bottom.jsp"/></td></tr>
<tr><td width="122" valign="top">
<page:applyDecorator name="simple"
page="/sitemesh/right.jsp"/></td></tr>
</table>
持久层Hibernate的配置:
首先通过classes/hibernate.cfg.xml文件配置Hibernate的数据库连接信息。然后在每个需要持久化的类二进制文件的所在目录中建立与类同名的.hbm.xml文件配置该类属性与数据表中字段的对应关系以及类之间的映射关系。以下是Customer.hbm.xml的内容。
<hibernate-mapping package="com.un.eclab">
<class name="Customer" table="CUSTOMER">
<id name="id" column="CID">
<generator class="increment" /></id>
<property name="strUserName" column="username" />
<property name="strPassword" column="password" />
</class>
</hibernate-mapping>
在需要将Customer对象持久化时,使用如下代码:
SessionFactory sf =
new Configuration().configure().buildSessionFactory();
Session session = sf.openSession();
Transaction tx = session.beginTransaction();
Customer customer = new Customer();
customer.setUsername("customername");
customer.setPassword("customerpassword");
session.save(customer);
tx.commit();
session.close();
4.3业务逻辑层的实现
以交易系统为例,该子系统实现的主要类列出如下(表2):
类名 主要功能
IProct 产品类接口,规范产品类的主要操作,适应不同企业对产品类的要求。
Proct 产品类,实现了Iproct接口。各企业可继承该类,实现对各自产品的管理
EccCart 交易中心购物车类,可管理多种交易类型。
EccCartItem 购物车子项类
EccOrder 订单类
EnpOptions 企业选项类,管理业务规则

表2 交易系统主要类列表
通过以上类的协作实现了交易系统的主要业务逻辑。
5 结束语
总体上看,采用开源技术设计电子商务实验模拟系统具有开发周期短、系统灵活性高、易于开发及维护等优点,较大程度上降低了系统开发的复杂程度和开发费用,可适应多变的用户需求,具备广阔的应用前景。

参考文献
[1] Java Open Source Programming.Joe Walnes,Ara Abrahamian,Mike Cannon-Brookes,Pat Lightbody.Indianapolis,Indiana:Wiley Publishing,Inc.2004.
[2] 张向先,魏革.电子商务模拟实验系统的商务模式构建.情报科学,2003(12)
[3] 戴 庆,司国海,李鹏飞.基于J2EE 的网上书店的构建技术及应用.大庆石油学院学报.2003(3)

『贰』 请教关于JAVA在企业EDI上的应用

Java中在接口的应用中,要注意一下几点: 接口一般定义的是常量和一些抽象方法。抽象类中可以包含抽象方法,也可以有非抽象方法,但是有抽象方法的类一定是抽象类。抽象方法不能有方法体。

『叁』 java企业级开发项目模块

Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用专性、属高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网等领域 1、Java SE(Java Platform,Standard Edi...

『肆』 maxjavaluxbyediwax是什么意思

可能是我很喜欢你和爱你

『伍』 Android系统开发

Android是Google的开源移动开发平台,业已成为移动设备领域的主流。近几年,随着越来越多硬件供应商“加入Andfoid操作系统的阵营。Google有望成为移动领域的微软。
《精通Android 3》是备受推崇的Android参考书,在上一版的基础上进行了全面修改和重新规划,同时新增了大量内容。涵盖了100多个主题,介绍了分别针对移动电话和平板电脑而优化的AndI”oid2。3 和Android3。0。
《精通Android 3》强调实用,突出趣味。寓教于乐。作者通过妙趣横生、切实可行的示例,向读者展示了如何使用Google“最新的And『old3。0SDK。构建贴近实际且意趣盎然的应用,深入全面地介绍了为嵌入式设备、手机、平板电脑构建应用所需的一切知识,同时介绍了自定义3D组件和多任务等高级主题。
《精通Android 3》是移动开发大师的真知灼见与实际应用相结合的产物。如果你对Android移动开发感兴趣。那么本书绝对不容错过。
内容简介:
《精通Android 3》在上一版的基础上进行了全面改进,增加了Android内部构件的相关知识,介绍了线程、进程、长期运行的服务、广播接收程序和闹钟管理器。本版还介绍了更多UI控件,并用150多页的篇幅专门介绍了Android 3.0版,包括碎片、碎片对话框、ActionBar和拖放。此外,《精通Android 3》对服务和传感器的相关章节做了大幅改进,还对介绍OpenGL的章节做了修订,涵盖了OpenGL ES 2.0。
《精通Android 3》囊括了Android开发人员所需的一切知识,既可为Android开发人员夯实基础,又能提高Android开发人员的技能。
作者简介:
Satya Komatineni,印度理工大学电子工程专业硕士?有20多年的程序设计经验,开发过用于Java Web开发的简单开源工具Aspire Web以及开源个人Web操作系统——_Aspire Knowledge Central。擅长使用Java、NET和数据库技术进行Web开发,发表过30多篇这方面的文章。他经常在创新技术相关的行业大会上发言,并为java.net上的网络博客撰稿。
Dave Mac Lean,加拿大滑铁卢大学系统设计工程专业学士。早在1980年就从事软件开发工作,使用过多种语言进行编程,曾开发机器人自动化、数据仓库、Web自助服务应用程序、EDI事务处理器等系统。Dave~在Sun、IBM、Trimble Navigation、通用汽车等公司工作。
Sayed Hashimi,美国佛罗里达大学工程学硕士。具有医疗、金融、物流和面向服务的架构等多个领域的软件开发经验,使用各种编程语言和平台(包括C/C++、MFC、J2EE和NET)开发过大规模的分布式应用程序。他在重要软件杂志上发表过许多文章,还在Apress出版过其他广受欢迎的图书。
各大售书网站大致价格:
当当网购买:约¥85.80RMB 京东商城购买:约¥85.80RMB 亚马逊购买:约¥85.80RMB

『陆』 java和java EE有什么区别

java EE属于Java的一部分;
Java分为三个体系,分别为Java SE(J2SE,Java2 Platform Standard Edition,标准版),JavaEE(J2EE,Java 2 Platform, Enterprise Edition,企业版),Java ME(J2ME,Java 2 Platform Micro Edition,微型版)。
Java EE(Java Platform,Enterprise Edition)是sun公司(2009年4月20日甲骨文将其收购)推出的企业级应用程序版本。这个版本以前称为 J2EE。能够帮助我们开发和部署可移植、健壮、可伸缩且安全的服务器端 Java应用程序。Java EE 是在 Java SE 的基础上构建的,它提供Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0应用程序。
Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。

『柒』 Java读取文件的编程。。求大神!!!

我理解跳过4个字符是这样的:"abcd你好233"这个字符串排列后变成"a好",跳了四个字符读取的.
public static void main(String[] args) throws Exception {
try {
InputStreamReader is = new InputStreamReader(new FileInputStream("f:/Decode.txt"), "gbk");
BufferedReader br = new BufferedReader(is);
FileWriter fw = new FileWriter("f:/output.txt");
String lineStr = null;
int lineNumber = 1, jumpStep = 0;
while ((lineStr = br.readLine()) != null) {
if (lineNumber == 1) {
jumpStep = Integer.parseInt(lineStr.trim()) + 1;
}
if (lineNumber == 2 || lineNumber == 3) {
StringBuilder sb = new StringBuilder();
System.out.println(lineStr);
char[] cs = lineStr.toCharArray();
for (int i = 0; i < cs.length; i = i + jumpStep) {
sb.append(cs[i]);
}
fw.write(sb.toString() + "\r\n");
}
lineNumber++;
}
br.close();
fw.close();
} catch (Exception e) {
e.printStackTrace();
}
}

额,另外inputstream中的skip方法实际上是跳过n个字节,而不是字符,所以那个方法是不可取的

热点内容
丁度巴拉斯情人电影推荐 发布:2024-08-19 09:13:07 浏览:886
类似深水的露点电影 发布:2024-08-19 09:10:12 浏览:80
《消失的眼角膜》2电影 发布:2024-08-19 08:34:43 浏览:878
私人影院什么电影好看 发布:2024-08-19 08:33:32 浏览:593
干 B 发布:2024-08-19 08:30:21 浏览:910
夜晚看片网站 发布:2024-08-19 08:20:59 浏览:440
台湾男同电影《越界》 发布:2024-08-19 08:04:35 浏览:290
看电影选座位追女孩 发布:2024-08-19 07:54:42 浏览:975
日本a级爱情 发布:2024-08-19 07:30:38 浏览:832
生活中的玛丽类似电影 发布:2024-08-19 07:26:46 浏览:239