4 L Y7 Q4 r/ B9 }9 n7 _4 r% J. `1 s- ?! H0 Z( w! W4 D6 l
三、 应用服务器(App Server) % o5 p* C8 y. V4 o
1 B% k. H5 }' s4 x3 Z, XApp Server是运行Java企业组件的平台,构成了应用软件的主要运行环境。当前主流的App Server是BEA公司的Weblogic Server和IBM公司的Websphere以及免费的Jboss,选择其中一个进行学习就可以了,个人推荐Weblogic,因为它的体系结构更加干净,开发和部署更加方便,是Java企业软件开发人员首选的开发平台。下面简要介绍几种常用的App Server: 5 S3 X/ x! @ i, ~% L3 t0 \9 h K
1、 Tomcat ! j: ^) e) b5 \4 K% o1 }9 e8 O) J$ o$ hTomcat严格意义上并不是一个真正的App Server,它只是一个可以支持运行Serlvet/JSP的Web容器,不过Tomcat也扩展了一些App Server的功能,如JNDI,数据库连接池,用户事务处理等等。Tomcat被非常广泛的应用在中小规模的Java Web应用中,因此本文做一点下载、安装和配置Tomcat的介绍: 1 Z, q/ w* Q) K& L: D+ g- r, |' u/ |
Tomcat是Apache组织下Jakarta项目下的一个子项目,它的主网站是:http://jakarta.apache.org/tomcat/ ;,Tomcat最新版本是Tomcat4.1.27,软件下载的连接是:http://www.apache.org/dist/jakarta/tomcat-4/binaries/ ;。 ; b" G- I, C) R- v
* n1 C! U( Z, T, @; E" T. b. a) b下载Tomcat既可以直接下载zip包,也可以下载exe安装包(个人建议zip更干净些),不管哪种情况,下载完毕安装好以后(zip直接解压缩就可以了)。需要设置两个环境变量: 4 Z! v0 S2 |8 ~* N1 N( q2 ]- v& \: F! _
, \( k3 B7 Z' U* l3 V9 ^" r# S
JAVA_HOME=C:\j2sdk1.4.2 + c: P* o S1 Z. W& L
CATALINA_HOME=D:\tomcat4 (你的Tomcat安装目录) * U: o7 a* ]6 c" M
( [/ L @9 I+ T4 G7 e3 i! u, c这样就安装好了,启动Tomcat运行CATALINA_HOME\bin\startup.bat,关闭Tomcat运行shutdown.bat脚本。Tomcat启动以后,默认使用8080端口,因此可以用浏览器访问http://localhost:8080来测试Tomcat是否正常启动。 ' w0 B8 O7 j) _% |& U0 m 4 Q. t. u! s' t1 ^6 @Tomcat提供了两个Web界面的管理工具,URL分别是: ; Y* X. a" x8 S' M$ @- P
http://localhost:8080/admin/index.jsp ;, I8 l6 b/ U) H
http://localhost:8080/manager/html ;- o7 S1 j3 ?+ u p6 h: u ~
在启用这两个管理工具之前,先需要手工配置一下管理员用户和口令。用一个文本工具打开CATALINA_HOME\conf\tomcat-users.xml这个文件,加入如下几行: ! l1 b8 e) w% m2 L . P/ t# M+ B4 l3 W$ R<role rolename="manager"/> + j" N1 n/ C/ `1 f G( i) | Q
<role rolename="admin"/> - p4 I% }3 g1 B" D<user username="robbin" password="12345678" roles="admin,manager,tomcat"/> 2 v" T+ o/ s- E0 b z, ~
" f( f% i( s0 L1 [% _5 {+ `. ~0 F U这样用户“robbin”就具备了超级管理员权限。重新启动Tomcat以后,你就可以使用该用户来登陆如上的两个管理工具,通过Web方式进行Tomcat的配置和管理了。 + {& c, H0 C! Y
: J. a3 D! ]% Y* t. y' C2、 BEA Weblogic B0 b5 \+ _# ~" G! L7 b/ _- QWeblogic可以到BEA的网站上免费注册之后下载到最新的Weblogic8.1企业版,License可以免费使用1年时间,其实这已经完全足够了。Weblogic的下载连接:http://commerce.bea.com/index.jsp,Weblogic的在线文档:http://edocs.bea.com/ ;。 9 [6 O4 H$ `) U/ r
8 r$ H; ]! }+ A1 R3 a
3、 IBM Webshpere " E3 p0 ~, t) T* {5 q" xWebsphere同样可以下载到免费的试用版本,到IBM的developerWorks网站可以看到Websphere试用产品的下载和相关的Websphere的资料,developerWorks中文网站的连接是:http://www-900.ibm.com/developerWorks/cn/wsdd/ ;,Websphere的下载连接:http://www7b.software.ibm.com/wsdd/downloads/WASsupport.html ;。 : m9 b4 `1 p q+ k& ~' @
+ } }+ I9 ]2 ~3 Z4、 Jboss - x5 G+ @6 o8 ] T/ ]Jboss是免费开源的App Server,可以免费的从Jboss网站下载:http://www.jboss.org/index.html,然而Jboss的文档是不免费,需要花钱购买,所以为我们学习Jboss设置了一定的障碍。在Jdon上有几篇不错的Jboss配置文档,可以用来参考:http://www.jdon.com/idea.html ; ( b# ?3 N, t6 E+ b! |" a& ^6 ?0 O
4 `% P+ n5 Z+ B Q
四、 Java应用的运行环境 6 M0 w3 |- ^, H + B2 `6 }( {6 Q3 p8 ? cJava的应用可以简单分为以下几个方面: " d# f/ J- b1 \8 L& D 5 Q6 Q& b/ j1 g/ R1、 Java的桌面应用 . A6 e0 w; y( G1 u6 M
桌面应用一般仅仅需要JRE的支持就足够了。 - x8 i( p! M/ P3 t
; A; w- ?9 \$ z6 ]- Y9 e
2、 Java Web应用 ) l' R: f0 k3 q5 G1 z' v
Java的Web应用至少需要安装JDK和一个web容器(例如Tomcat),以及一个多用户数据库,Web应用至少分为三层: / B. J' b5 M e0 ^0 KBrowser层:浏览器显示用户页面 ; Q9 ?4 s7 M& A
Web层:运行Servlet/JSP 9 w: _9 f7 f. i( ~* r7 a) F [DB层:后端数据库,向Java程序提供数据访问服务 - }6 e X4 w1 H9 h& u
5 n' u0 D6 m8 k& j* u- K* [& a% t
3、 Java企业级应用 ( V# p3 E9 v0 ^
企业级应用比较复杂,可以扩展到n层,最简单情况会分为4层: ( x; W7 T+ m" X# R) z- M5 ]
Browser层:浏览器显示用户页面 + F. f! U ~2 E) VClient层:Java客户端图形程序(或者嵌入式设备的程序)直接和Web层或者EJB层交互 $ T D7 {( y8 M6 X5 i: H( u1 a
Web层:运行Servlet/JSP ; z" ^- i$ x. m9 O; LEJB层:运行EJB,完成业务逻辑运算 / [. J& {6 E: [5 q2 E; m- r
DB层:后端数据库,向Java程序提供数据访问服务 ( u0 E" S9 n& z) [* ~ & C( j0 U) I- X b" A3 P4、 Java嵌入式应用 / Y& g4 h% h7 u/ U+ z! v7 U' @( i: L+ AJava嵌入式应用是一个方兴未艾的领域,从事嵌入式开发,需要从Sun下载J2ME开发包,J2ME包含了嵌入式设备专用虚拟机KVM,和普通的JDK中包含的JVM有所不同。另外还需要到特定的嵌入式厂商那里下载模拟器。 # E" ?) X; R& @/ t
1 x" r& P% j: F
. K5 ]- S8 p/ c* r% b& \+ h( |Java Learning Path(二)、书籍篇 5 w* [0 J4 H( p6 [( o; A/ Z! Q( ?9 U2 N) H+ H( X
学习一门新的知识,不可能指望只看一本,或者两本书就能够完全掌握。需要有一个循序渐进的阅读过程。我推荐Oreilly出版的Java系列书籍。 8 T8 K6 E/ b# q" n' Y" H
, S8 O- ?8 h# R在这里我只想补充一点看法,很多人学习Java是从《Thinking in Java》这本书入手的,但是我认为这本书是不适合初学者的。我认为正确的使用这本书的方法应该是作为辅助的读物。《Thinking in Java》并不是在完整的介绍Java的整个体系,而是一种跳跃式的写作方法,是一种类似tips的方法来对Java很多知识点进行了深入的分析和解释。 . R' s" Q0 b. c' R( e# d: e5 F
6 h7 t% o9 F9 \; ]对于初学者来说,最好是找一本Java入门的书籍,但是比较完整的循序的介绍Java的语法,面向对象的特性,核心类库等等,在看这本书的同时,可以同步来看《Thinking in Java》,来加深对Java的理解和原理的运用,同时又可以完整的了解Java的整个体系。 , k( C2 r# N# m* H. [ i& e: s# ^9 v- y) j& @* U
对于Java的入门书籍,蔡学镛推荐的是Oreilly的《Exploring Java, 2nd Edition》 或者《Java in a Nutshell,2nd Edition(针对C++背景)》,我并没有看过这两本书。其实我觉得电子工业出版社的《Java 2编程详解》或者《Java 2从入门到精通》就很不错。 6 r0 y# U. I k- Q0 m9 ~4 p6 a+ i% M
/ V: k7 _! @5 D. e A; @
在所有的Java书籍当中,其实最最有用的,并不是O′reilly的 Java Serials,真正最最有用处是JDK的Documentation!几乎你想获得的所有的知识在Documentation里面全部都有,其中最主要的部分当然是Java基础类库的API文档,是按照package来组织的,对于每一个class都有详细的解释,它的继承关系,是否实现了某个接口,通常用在哪些场合,还可以查到它所有的public的属性和方法,每个属性的解释,意义,每个方法的用途,调用的参数,参数的意义,返回值的类型,以及方法可能抛出的异常等等。可以这样来说,所有关于Java编程方面的书籍其实都不过是在用比较通俗易懂的语言,和良好的组织方式来介绍Documentation里面的某个package里面包含的一些类的用法而已。所以万变不离其宗,如果你有足够的能力来直接通过Documentation来学习Java的类库,那么基本上就不需要看其他的书籍了。除此之外,Documentation也是编程必备的手册,我的桌面上有三个Documentation的快捷方式,分别是J2SDK1.4.1的Documentation,Servlet2.3的Documentation和J2SDKEE1.3.1的Documentation。有了这个三个Documentation,什么其他的书籍都不需要了。 9 i9 n' R. T( ^. L/ C1 }9 J# u* `+ w( Q" v7 d/ M
对于Java Web 编程来说,最核心的是要熟悉和掌握HTTP协议,这个就和Java无关了,在熟悉HTTP协议之后,就需要熟悉Java的实现HTTP协议的类库,也就是Servlet API,所以最重要的东西就是Servlet API。当然对于初学者而言,直接通过Servlet API来学习Web编程有很大的难度,我推荐O′reilly的《Java Server Pages 》这本书来学习Web 编程。 5 i! e. o" U( m& h5 v + ~: o$ a. Q' f6 s3 lEJB的书籍当中,《Enterprise JavaBeans, 2nd Edition》是一本很不错的书, EJB的学习门槛是比较高,入门很难,但是这本书完全降低了学习的难度,特别重要的一点是,EJB的学习需要结合一种App Server的具体实现,所以在学习EJB的同时,必须同步的学习某种App Server,而这本书相关的出了三本书,分别是Weblogic6.1,Websphere4.0和JBoss3.0上面部署书中例子的实做。真是既有理论,又有实践。在学习EJB的同时,可以边看边做,EJB的学习会变得很轻松。 ( N, [$ P9 ]3 O1 D" o) J
% g+ K L+ F* k, u. v _1 V7 r
但是这本书也有一个问题,就是版本比较旧,主要讲EJB1.1规范和部分EJB2.0的规范。而Ed Roman写的《Mastering EJB 2.0》这本书完全是根据EJB2.0规范写的,深入浅出,覆盖了EJB编程的各个方面,并且还有很多编程经验tips,也是学习EJB非常推荐的书籍之一。 0 R7 F, y- r0 v9 T' u! i: D * s4 y, U+ A8 u3 I如果是结合Weblogic来学习J2EE的话,《J2EE应用与BEA Weblogic Server》绝对是首选读物,虽然是讲述的Weblogic6.0,仍然值得购买,这本书是BEA官方推荐的教材,作者也是BEA公司的工程师。现在中文版已经随处可见了。这本书结合Weblogic介绍了J2EE各个方面的技术在Weblogic平台上的开发和部署,实践指导意义非常强。 0 T( c1 `6 i- ~+ S3 r, I/ W
6 i% H- Y" @; R: j& W3 w在掌握了Java平台基础知识和J2EE方面的知识以后,更进一步的是学习如何运用OO的方法进行软件的设计,那么就一定要学习“设计模式”。Sun公司出版了一本《J2EE核心模式》,是每个开发Java企业平台软件的架构师必备的书籍。这本书全面的介绍了J2EE体系架构的各种设计模式,是设计师的必读书籍。 9 R0 @+ }; \) ~( }
+ h1 o' |' O/ O% \" \; v, f
Java Learning Path(三)过程篇 4 q/ Y! t3 V3 I0 R/ Z1 k+ R