社区应用 最新帖子 精华区 社区服务 会员列表 统计排行 社区论坛任务 迷你宠物
  • 7231阅读
  • 6回复

[JAVA]J2EE开发之常用开源项目介绍

级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
主要就我所了解的J2EE开发的框架或开源项目做个介绍,可以根据需求选用适当的开源组件进行开发.主要还是以Spring为核心,也总结了一些以前web开发常用的开源工具和开源类库 K w ]=  
%7.30CA|#  
1持久层: ?CPahU  
1)Hibernate tT_\i6My  
这个不用介绍了,用的很频繁,用的比较多的是映射,包括继承映射和父子表映射 {JMVV_}n  
对于DAO在这里介绍个在它基础上开发的包bba96,目前最新版本是bba96 2.0它对Hibernate进行了封装, 查询功能包括执行hsql或者sql查询/更新的方法,如果你要多层次逻辑的条件查询可以自己组装QueryObject.可以参考它做HibernateDAO.也可以直接利用它 5U$0F$BBp  
2) iBATIS ^u ~Q/ 4  
另一个ORM工具,Apache的,没有Hibernate那么集成,自由度比较大 hz@bW2S.  
@*( (1(q  
Q p3_f8  
2:SpringMVC OQJ6e:BGt  
原理说明和快速入门: <0!):zraS  
配置文件为: jQB9j  
Spring的配置文件默认为WEB-INF/xxxx-servelet.xm其中xxx为web.xml中org.springframework.web.servlet.DispatcherServlet的servlet-name。 }K|oicpUg  
Action分发: H**Xu;/5@  
Spring将按照配置文件定义的URL,Mapping到具体Controller类,再根据URL里的action= xxx或其他参数,利用反射调用Controller里对应的Action方法。 s.C_Zf~3  
输入数据绑定: 4|DWOQ':  
Spring提供Binder 通过名字的一一对应反射绑定Pojo,也可以直接从request.getParameter()取数据。 -uf|w?  
输入数据验证 0\P1; ak%  
Sping 提供了Validator接口当然还可以使用开源的Commons-Validaor支持最好 Ad_h K O  
Interceptor(拦截器) M8(t 'jN  
Spring的拦截器提供接口需要自己编写,在这点不如WebWork做的好.全面 4H&+dR I"  
(这里提一下WebWork和Struts的区别最主要的区别在于WebWork在建立一个Action时是新New一个对象而Struts是SingleMoule所有的都继承它的一个Action,所以根据项目需要合适的选择.) 37o; ;  
"^%cJAnLX  
jNk%OrP]  
3:View层 l]8uk^E  
1) 标签库:JSP2.0/JSTL VMWf>ZU  
由于Webwork或Spring的标签确实很有限,一般view层用JSTL标签,而且据说JSTL设计很好速度是所有标签中最快的使用起来也很简单 pW3^X=6  
 2JBR)P  
2) 富客户端:DOJO Widgets, YUI(YahooUI),FCKEditor, Coolest日历控件 4,DeHJjAlE  
Dojo主要提供Tree, Tab等富客户端控件,可以用其进行辅助客户端开发 t b}V5VH  
YahooUI和DOJO一样它有自己的一套javascript调试控制台,主要支持ajax开发也有很多Tree,Table,Menu等富客户端控件 /k3:']G,s  
FCKEditor 最流行的文本编辑器 ( a#BV}=  
Coolest日历控件 目前很多日历控件可用,集成在项目中也比较简单,这个只是其中的一个,界面不错的说.. pv|G^,>#  
&tj!*k'  
3) JavaScript:Prototype.js P&LsVR{#  
Prototype.js作为javascript的成功的开源框架,封装了很多好用的功能,通过它很容易编写AJAX应用,现在AJAX技术逐渐成熟,框架资源比较丰富,比如YUI,DWR等等,也是因为JavaScript没有合适的调试工具,所以没有必要从零开始编写AJAX应用,个人认为多用一些成熟的Ajax框架实现无刷新更新页面是不错的选择. FQ\h4` >B  
/%^#8<=|U  
4)表格控件:Display Tag ,Extreme Table 4Fr  
这两个的功能差不多,都是View层表格的生成,界面也比较相向,可以导出Excel,Pdf,对Spring支持很容易. N~'c_l  
相比较而言比较推荐ExtremeTable,它的设计很好功能上比DisplayTag多一些,支持Ajax,封装了一些拦截器,而且最方面的是在主页wiki中有详细的中文使用文档. D*d]aC  
c\j/k[\<  
5):OSCache PEZ!n.'S  
OSCache是OpenSymphony组织提供的一个J2EE架构中Web应用层的缓存技术实现组件,Cache是一种用于提高系统响应速度、改善系统运行性能的技术。尤其是在Web应用中,通过缓存页面的输出结果,可以很显著的改善系统的稳定性和运行性能。 =UWI9M*sz  
它主要用在处理短时间或一定时间内一些数据或页面不会发生变化,或将一些不变的统计报表,缓冲在内存,可以充分的减轻服务器的压力,防治负载平衡,快速重启服务器(通过硬盘缓存). |yPu!pfl  
61U09s%\0  
6)SiteMesh Cp0=k  
sitemesh应用Decorator模式主要用于提高页面的可维护性和复用性,其原理是用Filter截取request和response,把页面组件head,content,banner结合为一个完整的视图。通常我们都是用include标签在每个jsp页面中来不断的包含各种header, stylesheet, scripts and footer,现在,在sitemesh的帮助下,我们删掉他们轻松达到复合视图模式. F:S}w   
Sitemesh也是 OpenSymphony的一个项目现在最近的版本是2.2,目前OpenSymphony自从04年就没有更新的版本了..感觉它还是比较有创新的一种页面组装方式, OpenSymphony开源组织的代码一般写的比较漂亮,可以改其源代码对自己的项目进行适配. =t?F6)Q  
测试发现Sitemesh还存在一些问题,比如中文问题,它的默认编码是iso-8859-1在使用时候需要做一些改动. EADqC>  
w``U=sfmV  
7)CSS,XHTML {)sdiE  
这个不用说了,遵循W3C标准的web页面开发. Qo|\-y-#  
PCtzl )  
8)分页标签: pager-taglib组件 *s3/!K  
Pager-taglib 是一套分页标签库,可以灵活地实现多种不同风格的分页导航页面,并且可以很好的与服务器分页逻辑分离.使用起来也比较简单. 7@W>E;go  
X"eYK/7  
9)Form: Jodd Form taglib {+>-7 9b  
Jodd Form taglib使用比较简单,只要把form的头尾以包住 r9?Mw06Wc5  
就会自动绑定mybean, 自动绑定mybean的所有同名属性到普通html标记input, selectbox, checkbox,radiobox.....在这些input框里不用再写任何代码… EfT=?  
h/Y'<:  
10)Ajax:DWR N"ST@/j.A  
J2EE应用最常用的ajax框架 scV5PUq  
1?l1:}^L  
11)报表 图表 SOIN']L|V[  
Eclipse BIRT功能比较强大,也很庞大..好几十M,一般没有特别需求或别的图表设计软件可以解决的不用它 do'GlU oMC  
JasperReports+ iReport是一个基于Java的开源报表工具,它可以在Java环境下像其它IDE报表工具一样来制作报表。JasperReports支持PDF、HTML、XLS、CSV和XML文件输出格式。JasperReports是当前Java开发者最常用的报表工具。 'LDQgC*%  
JFreeChart主要是用来制作各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。 <N~K ;n v  
琴棋报表,国产的..重点推荐,适合中国的情况,开放源代码,使用完全免费。纯JAVA开发,适用多种系统平台。特别适合B/S结构的系统。官方网站有其优点介绍,看来用它还是不错的选择,最重要的是支持国产呵呵 4#Jg9o   
A@#E@ ;lm  
4:权限控制: Acegi p6S8VA  
Acegi是Spring Framework 下最成熟的安全系统,它提供了强大灵活的企业级安全服务,如完善的认证和授权机制,Http资源访问控制,Method 调用访问控制等等,支持CAS =Dj#gV  
(耶鲁大学的单点登陆技术,这个单点登陆方案比较出名.我也进行过配置使用,可以根据项目需要,如果用户分布在不同的地方不同的系统通用一套登陆口令可以用它进行解决,一般注册机登陆机就是这样解决的) ^S; -fYW2  
Acegi只是于Spring结合最好的安全框架,功能比较强大,当然还有一些其他的安全框架,这里列举一些比较流行的是我从网上找到的,使用方法看其官方文档把… 2GG2jky{/  
JAAS, Seraph, jSai - Servlet Security, Gabriel, JOSSO, Kasai, jPAM, OpenSAML都是些安全控制的框架..真够多的呵呵 TWX.D`W  
B%68\  
5:全文检索 I7 ]8Y=xf  
1) Lucene N?8!3&TiV  
Lucene是一套全文索引接口,可以通过它将数据进行倒排文件处理加入索引文件,它的索引速度和查询速度是相当快的,查询百万级数据毫秒级出结果,现在最火的Apache开源项目,版本更新速度很快现在已经到了2.0,每个版本更新的都比较大,目前用的最多的版本应该是1.4.3,但它有个不太方面的地方单个索引文件有2G文件限制,现在2.0版本没有这个限制,我研究的比较多,它的扩展性比较好,可以很方面的扩充其分词接口和查询接口. f _:A0  
基于它的开发的系统很多,比如最常用的Eclipse的搜索功能,还有一些开源的软件比如Compass,Nutch,Lius,还有我最近做的InSearch(企业级FTP文件网页搜索) Zv{'MIv&v  
/PKNLK  
6:公共Util类 #KvlYZ+1  
主要是Jakarta-Commons类库,其中最常用得是以下几个类库 F8ulkcD  
1) Jakarta-Commons-Language Kc\fu3Q  
最常用得类是StringUtils类,提供了使用的字符串处理的常用方法效率比较高 {_*yGK48n  
2) Jakarta-Commons-Beantuils )t%b838l%  
主要用Beantuils能够获得反射函数封装及对嵌套属性,map,array型属性的读取。 \Vk:93OH21  
3) Jakarta-Commons-Collections n+R7D.<q!!  
里面有很多Utils方法 .e-#yET  
|DwZ{(R"W  
7 日志管理 :Hbv)tS\3w  
Log4J eyxW 0}[  
任务是日志记录,分为Info,Warn,error几个层次可以更好的调试程序 #O&8A  
[nh>vqum  
8 开源的J2EE框架 m]&SNz=  
1) Appfuse o2ECG`^b  
Appfuse是Matt Raible 开发的一个指导性的入门级J2EE框架, 它对如何集成流行的Spring、Hibernate、iBatis、Struts、Xdcolet、JUnit等基础框架给出了示范. 在持久层,AppFuse采用了Hibernate O/R映射工具;在容器方面,它采用了Spring,用户可以自由选择Struts、Spring/MVC,Webwork,JSF这几个Web框架。 B33\?Yj)  
l U]nd[x  
2) SpringSide -nwypu  
.SpringSide较完整的演示了企业应用的各个方面,是一个电子商务网站的应用 SpringSide也大量参考了Appfuse中的优秀经验。最重要的是它是国内的一个开源项目,可以了解到国内现在的一些实际技术动态和方向很有指导意义… MHwIA*R  
%z$#6?OK^  
9:模版 Template *n!J=yS  
主要有Veloctiy和Freemarker J .<F"r>  
模板用Servlet提供的数据动态地生成 HTML。编译器速度快,输出接近静态HTML 页面的速度。 ~.|_RdN  
w32y3~  
10:工作流 LR3*G7  
我所知道比较出名的主要有JBpm Shark Osworkflow,由于对它没有过多的研究所以还不是很清楚之间有什么区别. ?q [T  
y1#1Ne_  
项目管理软件 7}mFL*  
dotProject:是一个基于LAMP的开源项目管理软件。最出名的项目管理软件 wuo,kM  
JIRA: 项目计划,任务安排,错误管理 8 FhdN  
Bugzilla:提交和管理bug,和eclipse集成,可以通过安装MyEclipse配置一下即可使用 iURe([@  
BugFree借鉴微软公司软件研发理念、免费开放源代码、基于Web的精简版Bug管理 !5N.B|N t  
CVS:这个就不介绍了都在用. 5lum$5  
SVN: SubVersion已逐渐超越CVS,更适应于JavaEE的项目。Apache用了它很久后,Sourceforge刚刚推出SVN的支持。 |':{lH6+1  
测试用例:主要JUnit单元测试,编写TestCase,Spring也对Junit做了很好的支持 y B$x>Q'C(  
HVAYPerH  
后记: {4PwLCy  
以Spring为主的应用开发可选用的组件中间件真是眼花缭乱,所以针对不同的项目需求可以利用不同的开源产品解决,比如用Spring+Hibernate/ iBATIS或Spring+WebWork+Hibernate/ iBATIS或Spring+Struts+Hibernate/ iBATIS,合理的框架设计和代码复用设计对项目开发效率和程序性能有很大的提高,也有利于后期的维护.
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
级别: 经院初中
发帖
278
铜板
278
人品值
-84
贡献值
0
交易币
0
好评度
278
信誉值
0
金币
0
所在楼道
学一楼
只看该作者 6 发表于: 2012-02-10
很好!很强大! w2J<WC+_<  
,"ql5Q4  
"Rl}VeDY  
*lb<$E]="!  
>-c8q]()ly  
D&zle~" J  
F:ELPs4"  
)pn3~t<e d  
T]$U""  
北京商标代理
发帖
71
铜板
41
人品值
-99
贡献值
0
交易币
0
好评度
71
信誉值
0
金币
0
所在楼道
学一楼
只看该作者 5 发表于: 2011-10-25
QQ394910579骗子一个,大家不要信他啊 ~)'k 9?0  
QQ394910579骗子一个,大家不要信他啊 Xm&L B X  
情况描述:这个人在淘宝开店,卖QQ堂外挂,拍后说让加群,加上后,说淘宝点了确认后再给店主好评,就给你软件,于是我就信了,也没多少钱,就8块钱,完事我就按照群主说的,给了店主好评,完事直接把我拉黑,哎,速度跟闪电似得,之后也申请不了退款了,哎,算自己倒霉,这年头,8快去都有人骗,我把信息发出来,大家不要再上当了啊,要聊天记录的跟帖,我发聊天记录(能漫游到那个人的QQ聊天记录)骗子QQ394910579 g,Y/M3>(  
QQ394910579是个小骗子,8块钱都骗的孙子 Ap !lQ>p  
发帖
27
铜板
29
人品值
21
贡献值
0
交易币
0
好评度
27
信誉值
0
金币
0
所在楼道
学一楼
只看该作者 4 发表于: 2010-10-28
J2EE简介01
j2ee B-ESFATc  
I?NyM  
J2EE简介 DL.!G  
  J2EE Java2平台企业版(Java 2 Platform,Enterprise Edition) ?1".;foZ  
  J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。 _XT pU  
  J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,导致企业内部或外部难以互通的窘境。 /7LR;>Bj  
  一、J2EE的概念 -^wl>}#*T3  
  目前,Java 2平台有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro =Runf +}  
  版(Java 2 Platform Micro Edition,J2ME)、适用于桌面系统的Java 2平台标准版( |&jXp%4T  
  Java 2 Platform Standard Edition,J2SE)、适用于创建服务器应用程序和服务的Jav Rva$IX ^]  
  a 2平台企业版(Java 2 Platform Enterprise Edition,J2EE)。  C.QO#b  
  J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问 9ll~~zF99|  
  题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩 zn(PI3+]!  
  固了标准版中的许多优点,例如"编写一次、随处运行"的特性、方便存取数据库的JDBC Ct|A:/z(  
  API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 A70d\i  
  EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及X `,0}ZzaV&  
  ML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间 -{_PuJ "  
  的体系结构。 bjS {(  
  J2体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠 3mni>*q7d  
  性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的 y3ikWnx  
  费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise s(8W_4&'  
  JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高 Qei" '~1a  
  了性能。 (9h`3#  
  二. J2EE的优势 R GX=)  
  J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制: "*H`HRi4T  
  1. 保留现存的IT资产: 由于企业必须适应新的商业需求,利用已有的企业信息系 UZ$/Ni  
  统方面的投资,而不是重新制定全盘方案就变得很重要。这样,一个以渐进的(而不是 E!AE4B1bd  
  激进的,全盘否定的)方式建立在已有系统之上的服务器端平台机制是公司所需求的。J c:g'.'/*  
  2EE架构可以充分利用用户原有的投资,如一些公司使用的BEA Tuxedo、IBM CICS, 8i,K~Bu=  
  IBM Encina,、Inprise VisiBroker 以及Netscape Application Server。这之所以成为 07$o;W@  
  可能是因为J2EE拥有广泛的业界支持和一些重要的'企业计算'领域供应商的参与。每一 '3H_wd  
  个供应商都对现有的客户提供了不用废弃已有投资,进入可移植的J2EE领域的升级途径 |)G<,FJQE_  
  。由于基于J2EE平台的产品几乎能够在任何操作系统和硬件配置上运行,现有的操作系 (tQc  
  统和硬件也能被保留使用。 vcd\GN*4f  
  2. 高效的开发: J2EE允许公司把一些通用的、很繁琐的服务端任务交给中间件供 { BHO/q3  
  应商去完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时 G#1GXFDO{  
  间。高级中间件供应商提供以下这些复杂的中间件服务: PxE3K-S)G  
  o 状态管理服务 -- 让开发人员写更少的代码,不用关心如何管理状态, ]9,; K;1<  
  这样能够更快地完成程序开发。 FGQzoS  
  o 持续性服务 -- 让开发人员不用对数据访问逻辑进行编码就能编写应用 v9UD%@tZ  
  程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维护。 :j`s r  
  o 分布式共享数据对象CACHE服务 -- 让开发人员编制高性能的系统,极大 ~v"L!=~G;a  
  提高整体部署的伸缩性。 1i ] ^{;]  
  3. 支持异构环境: J2EE能够开发部署在异构环境中的可移植程序。基于J2EE的应 ZAf7Tz\U  
  用程序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于J2EE的程序只需 fxIf|9Qi`  
  开发一次就可部署到各种平台。这在典型的异构企业计算环境中是十分关键的。J2EE标 -`t^7pr  
  准也允许客户订购与J2EE兼容的第三方的现成的组件,把他们部署到异构环境中,节省 snikn&  
  了由自己制订整个方案所需的费用。 i 3SHg\~Z  
  4. 可伸缩性: 企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸 ;S*}WqP,  
  缩性去满足那些在他们系统上进行商业运作的大批新客户。基于J2EE平台的应用程序可 m#F`] {  
  被部署到各种操作系统上。例如可被部署到高端UNIX与大型机系统,这种系统单机可支 9)=ctoZ'  
  持64至256个处理器。(这是NT服务器所望尘莫及的)J2EE领域的供应商提供了更为广泛 ei{eTp4HpV  
  的负载平衡策略。能消除系统中的瓶颈,允许多台服务器集成部署。这种部署可达数千  RX5dO%  
  个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。 8KNZ](Dj  
  稳定的可用性: 一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要 cs'{5!i]  
  。因为INTERNET是全球化的、无处不在的,即使在夜间按计划停机也可能造成严重损失 4'Zp-k?5`  
  。若是意外停机,那会有灾难性后果。J2EE部署到可靠的操作环境中,他们支持长期的 d`6 ' Z  
  可用性。一些J2EE部署在WINDOWS环境中,客户也可选择健壮性能更好的操作系统如Sun V470C@  
  Solaris、IBM OS/390。最健壮的操作系统可达到99.999%的可用性或每年只需5分钟停机 qyNyBr?  
  时间。这是实时性很强商业系统理想的选择。 e~':(/%|5;  
  三. J2EE 的四层模型 k;L6R!V  
  J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据 D#)b+7N-  
  他们所在的层分布在不同的机器上。事实上,sun设计J2EE的初衷正是为了解决两层模式 !Rt>xD  
  (client/server)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,在这种 d^6M9lGU  
  模式中,第一次部署的时候比较容易,但难于升级或改进,可伸展性也不理想,而且经 ?pZOeqqu$  
  常基于某种专有的协议??通常是某种数据库协议。它使得重用业务逻辑和界面逻辑非 kSh( u  
  常困难。现在J2EE 的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一 z$xo$R(  
  个多层化应用能够为不同的每种服务提供一个独立的层,以下是 J2EE 典型的四层结构: ! v0LBe4  
  运行在客户端机器上的客户层组件 /FJu)H..U  
  运行在J2EE服务器上的Web层组件 })?GzblI&  
  运行在J2EE服务器上的业务逻辑层组件 = 9]~ yt  
  运行在EIS服务器上的企业信息系统(Enterprise information system)层软件 )>- =R5ZV  
  J2EE应用程序组件 \'bzt"f$j  
  J2EE应用程序是由组件构成的.J2EE组件是具有独立功能的软件单元,它们通过相关 O0y_Lm\  
  的类和文件组装成J2EE应用程序,并与其他组件交互。J2EE说明书中定义了以下的J2EE 09Cez\0  
  组件: m9Hit8f@Q  
  应用客户端程序和applets是客户层组件. *D3/@S$B  
  Java Servlet和JavaServer Pages(JSP)是web层组件. ""|Qtubv  
  Enterprise JavaBeans(EJB)是业务层组件. ZQ0F$J)2~  
  客户层组件 :08,JL{  
  J2EE应用程序可以是基于web方式的,也可以是基于传统方式的. }Z,x~G  
  web 层组件 IB7E}56l  
  J2EE web层组件可以是JSP 页面或Servlets.按照J2EE规范,静态的HTML页面和Appl # Vha7  
  ets不算是web层组件。 Qz N&>sk"  
  正如下图所示的客户层那样,web层可能包含某些 JavaBean 对象来处理用户输入,并把 E\,-XH  
  输入发送给运行在业务层上的enterprise bean 来进行处理。 1y4  
  业务层组件 ^`>/.gL  
  业务层代码的逻辑用来满足银行,零售,金融等特殊商务领域的需要,由运行在业务 $p?aVO  
  层上的enterprise bean 进行处理. 下图表明了一个enterprise bean 是如何从客户端 {!dVDf_  
  程序接收数据,进行处理(如果必要的话), 并发送到EIS 层储存的,这个过程也可以逆 !I Qck8Y  
  向进行。 Y.r+wc]  
  有三种企业级的bean: 会话(session) beans, 实体(entity) beans, 和消息驱动(messa n=ux5M  
  ge-driven) beans. 会话bean 表示与客户端程序的临时交互. 当客户端程序执行完后, 5[u]E~Fl}  
  会话bean 和相关数据就会消失. 相反, 实体bean 表示数据库的表中一行永久的记录. xUistwq  
  当客户端程序中止或服务器关闭时, 就会有潜在的服务保证实体bean 的数据得以保存. Vy, DN~ag  
  消息驱动 bean 结合了会话bean 和 JMS的消息监听器的特性, 允许一个业务层组件异步 hfy_3}_  
  接收JMS 消息. "6?0h[uff  
  企业信息系统层 /~f'}]W  
  企业信息系统层处理企业信息系统软件包括企业基础建设系统例如企业资源计划 NTI+  
  (ERP), 大型机事务处理, 数据库系统,和其它的遗留信息系统. 例如,J2EE 应用组件可 }~e%J(  
  能为了数据库连接需要访问企业信息系统 H+Sz=tg5  
  四. J2EE 的结构 /RC7"QzL  
  这种基于组件,具有平台无关性的J2EE 结构使得J2EE 程序的编写十分简单,因为业务 sp*v?5lW  
  逻辑被封装成可复用的组件,并且J2EE 服务器以容器的形式为所有的组件类型提供后台 NPe%F+X  
  服务. 因为你不用自己开发这种服务, 所以你可以集中精力解决手头的业务问题。 \)?HJ  
  容器和服务 fsWTF<Y  
  容器设置定制了J2EE服务器所提供得内在支持,包括安全,事务管理,JNDI(Java p"ZG%Ow5Q]  
  Naming and Directory Interface)寻址,远程连接等服务,以下列出最重要的几种服务 Fun^B;GA:  
  : ';=O 0)u  
  J2EE安全(Security)模型可以让你配置 web 组件或enterprise bean ,这样只有被授权 %Qdn  
  的用户才能访问系统资源. 每一客户属于一个特别的角色,而每个角色只允许激活特定 r|Tcfk]%  
  的方法。你应在enterprise bean的布置描述中声明角色和可被激活的方法。由于这种声 K&KWN]  
  明性的方法,你不必编写加强安全性的规则。 8eHyL  
  J2EE 事务管理(Transaction Management)模型让你指定组成一个事务中所有方法间的 s6^>F/x  
  关系,这样一个事务中的所有方法被当成一个单一的单元. 当客户端激活一个enterpris 3x'|]Ns  
  e bean中的方法,容器介入一管理事务。因有容器管理事务,在enterprise bean中不必 W]5w \  
  对事务的边界进行编码。要求控制分布式事务的代码会非常复杂。你只需在布置描述文 *itUWpNhr  
  件中声明enterprise bean的事务属性,而不用编写并调试复杂的代码。容器将读此文件 _t #k,;  
  并为你处理此enterprise bean的事务。 9c :cw  
  JNDI 寻址(JNDI Lookup)服务向企业内的多重名字和目录服务提供了一个统一的接口,这 ` v@m-j6  
  样应用程序组件可以访问名字和目录服务. Ge-vWf-RbB  
  J2EE远程连接(Remote Client Connectivity)模型管理客户端和enterprise bean间的 ? '{SX9  
  低层交互. 当一个enterprise bean创建后, 一个客户端可以调用它的方法就象它和客户 @7j AL-  
  端位于同一虚拟机上一样. v<(  
  生存周期管理(Life Cycle Management)模型管理enterprise bean的创建和移除,一个 "mvt>X  
  enterprise bean在其生存周期中将会历经几种状态。容器创建enterprise bean,并在 @'!SN\?W8  
  可用实例池与活动状态中移动他,而最终将其从容器中移除。即使可以调用enterprise <T|3`#o0  
  bean的create及remove方法,容器也将会在后台执行这些任务。 l&Q`wR5e  
  数据库连接池(Database Connection Pooling)模型是一个有价值的资源。获取数据库 EGF '"L  
  连接是一项耗时的工作,而且连接数非常有限。容器通过管理连接池来缓和这些问题。e 76h ,]xi  
  nterprise bean可从池中迅速获取连接。在bean释放连接之可为其他bean使用。 oEKvl3Hz_  
  容器类型 4 VW[E1<  
  J2EE应用组件可以安装部署到以下几种容器中去: #Kex vP&*  
  EJB 容器管理所有J2EE 应用程序中企业级bean 的执行. enterprise bean 和它们的容 orMwAV  
  器运行在J2EE 服务器上. aH/ k Ua  
  Web 容器管理所有J2EE 应用程序中JSP页面和Servlet组件的执行. Web 组件和它们的容 FSW_<%  
  器运行在J2EE 服务器上. X!dYdWw*m  
  应用程序客户端容器管理所有J2EE应用程序中应用程序客户端组件的执行. 应用程序客 ;P%1j|7  
  户端和它们的容器运行在J2EE 服务器上. _C[q4?  
  Applet 容器是运行在客户端机器上的web浏览器和 Java 插件的结合.。 F%D.zvKN  
  五. J2EE的核心API与组件 9H`XeQ.  
  J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基 sZ/v^ xk  
  于Web的多层应用提供了功能支持,下面对J2EE中的13种技术规范进行简单的描述(限于 GH:jH]u!V  
  篇幅,这里只能进行简单的描述): ]R f[y  
  1. JDBC(Java Database Connectivity): zL`iK"N`  
  JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽 MC.) 2B7  
  了一些细节问题,另外,JDCB对数据库的访问也具有平台无关性。 ofw3S |F6  
  2. JNDI(Java Name and Directory Interface): qm8B8&-  
  JNDI API被用于执行名字和目录服务。它提供了一致的模型来存取和操作企业级的资源 JNXq.;:`Q  
  如DNS和LDAP,本地文件系统,或应用服务器中的对象。 CSq4x5!_7>  
  3. EJB(Enterprise JavaBean): UIN<2F_  
  J2EE技术之所以赢得某体广泛重视的原因之一就是EJB。它们提供了一个框架来开发和实 P%&0]FCx  
  施分布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发 >rKIG~P_  
  。EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。容器负责提供公用的 !0LWa"  
  服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。但这里值得注意的 My[pr_xg  
  是,EJB并不是实现J2EE的唯一途径。正是由于J2EE的开放性,使得有的厂商能够以一种 ;LSANr&  
  和EJB平行的方式来达到同样的目的。 MPg)=LI  
  4. RMI(Remote Method Invoke): c>:wd@w  
  正如其名字所表示的那样,RMI协议调用远程对象上方法。它使用了序列化方式在客户端 ywm8N%]v  
  和服务器端传递数据。RMI是一种被EJB使用的更底层的协议。 tm RXgTS  
  5. Java IDL/CORBA: k],Q9  
  在Java IDL的支持下,开发人员可以将Java和CORBA集成在一起。他们可以创建Java对象 !1 H# 6  
  并使之可在CORBA ORB中展开, 或者他们还可以创建Java类并作为和其它ORB一起展开的C 9BBmw(M}  
  ORBA对象的客户。后一种方法提供了另外一种途径,通过它Java可以被用于将你的新的 0 e ~JMUb  
  应用和旧的系统相集成。 c"V"zg22  
  6. JSP(Java Server Pages): 3/e.38m|  
  JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对 EPM-df!=  
  这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。 J({Xg?  
  7. Java Servlet: RF4vtQC=  
  Servlet是一种小型的Java程序,它扩展了Web服务器的功能。作为一种服务器端的应用 -23w2Qt  
  ,当被请求时开始执行,这和CGI Perl脚本很相似。Servlet提供的功能大多与JSP类似 >T3-  
  ,不过实现的方式不同。JSP通常是大多数HTML代码中嵌入少量的Java代码,而servlets {~"/Y@&]R  
  全部由Java写成并且生成HTML。 mtp+rr  
  8. XML(Extensible Markup Language): ]e>w }L(gV  
  XML是一种可以用来定义其它标记语言的语言。它被用来在不同的商务过程中共享数据。 !_D0vI;  
  XML的发展和Java是相互独立的,但是,它和Java具有的相同目标正是平台独立性。通过 9YQb &  
  将Java和XML的组合,您可以得到一个完美的具有平台独立性的解决方案。 e+ BQww  
  9. JMS(Java Message Service): Z|j>gq  
  MS是用于和面向消息的中间件相互通信的应用程序接口(API)。它既支持点对点的域,有 [KaAXv .X  
  支持发布/订阅(publish/subscribe)类型的域,并且提供对下列类型的支持:经认可的 ^-Kf']hU  
  消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持。JMS还提供了另 V0.vQ/  
  一种方式来对您的应用与旧的后台系统相集成。 vB|hZTW  
  10. JTA(Java Transaction Architecture): aPfO$b:  
  JTA定义了一种标准的API,应用系统由此可以访问各种事务监控。 J1RJ*mo7,  
  11. JTS(Java Transaction Service): GmEJhr.3`=  
  JTS是CORBA OTS事务监控的基本的实现。JTS规定了事务管理器的实现方式。该事务管理 cyv`B3}  
  器是在高层支持Java Transaction API (JTA)规范,并且在较底层实现OMG OTS j0S# >t  
  specification的Java映像。JTS事务管理器为应用服务器、资源管理器、独立的应用以 Gm.T;fc:  
  及通信资源管理器提供了事务服务。 u jq=F  
  12. JavaMail: 9gEwh<  
  JavaMail是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类。不仅支持SM ?; +1)>{  
  TP服务器,也支持IMAP服务器。 ]kRfB:4ED  
  JAF(JavaBeans Activation Framework): uHvp;]/0\  
JavaMail利用JAF来处理MIME编码的邮件附件。MIME的字节流可以被转换成Java对象,或者转换自Java对象。大多数应用都可以不需要直接使用JAF。 }mq6]ZrK  
" H&W}N  
更多免费技术文章和技术讲座视频请参考www.ascenttech.cn #crQ1p) \  
5Y'qaIFR  
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 3 发表于: 2007-08-15
隐身。。。。。。。。。。
级别: 店掌柜
发帖
5692
铜板
103378
人品值
1520
贡献值
26
交易币
0
好评度
5373
信誉值
0
金币
0
所在楼道

只看该作者 2 发表于: 2007-08-07
偷偷的告诉大家 |?xN\O^#}  
zOIDU  
这个人不经常在线 ^4hO  
1~`fVg  
时常发呆

简单生活
执著追求
别笑我浅溥,天真的以为用一腔真诚就能感动这个冷漠的世界。
也别说我幼稚,竟想用不长的人生去诠释繁杂的红尘。
然而除了真诚,我还能给你什么,的确我真的一无所有!

级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 1 发表于: 2007-08-07
有对java有兴趣的加qq:305788784~~HOHO
描述
快速回复

您目前还是游客,请 登录注册
如果您在写长篇帖子又不马上发表,建议存为草稿
认证码:
验证问题:
3+5=?,请输入中文答案:八 正确答案:八