a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 314|回复: 0

[专业语言] JAVA认证:J2EE学习中值得研究的开源项目详解

[复制链接]
发表于 2012-8-4 12:44:44 | 显示全部楼层 |阅读模式
这篇文章写在我研究J2SE、J2EE近三年后。前3年我研究了J2SE的Swing、Applet、Net、RMI、Collections、 IO、JNI……研究了J2EE的JDBC、Sevlet、JSP、JNDI…..不久我发现这些仿佛太浅陋了:首先,我发现自己知道的仅仅是java提 供的年夜量的API,根柢不能很好地使用它; 其次,我根柢就没有学到任何有助于写轨范的常识,此时我也只不外能写个几页的小轨范。出于这个幼稚的设法我研究了JDK中Collections、 Logger、IO…..的源代码,发现这个世界真的很神奇,竟然有如斯的高手――操作java说话最最根基的语法,缔造了这些优异的 Framework。
7 M% Z. M1 @& X5 N. d6 S- ]年夜此一发不成收拾,我继续研究了J2EE的部门,又发现这是一个我根柢不能理解的标的目的(曾经有半年裹足不前),为什么只有接口没有实现啊!后出处于 一向使用Tomcat、Derby等软件俄然发现:哦!原本J2EE仅仅是一个尺度,只是一个架构。真正的实现是分歧供给商供给的。
; j3 h) Y5 `5 Q7 g0 c( p# x接着我研究了MOM4J、OpenJMS、Mocki、HSQLD……发现这些就是J2EE的实现啊!原本软件竟会如斯复杂,竟会如斯做….规范和 实现又是若何成为一体的呢?经由过程膳缦沔的研究发现:原本J2EE后面竟然有太多太多理念、太多太多的相似!这些相似就是其背后的理念――设计模式!(很幸 运,在我学java的时辰,我一捌揭捉java的一个标的目的就会睹突皓关于设计模式的书!很幸运,到能领略一点的时辰能真正知道这是为什么!)其实模式就是一 种思维体例、就是一种理念……模式是要运用到轨范中的,只有年夜真正的项目中才能体味模式的寄义……
3 H. G, i: t. @) n: k5 K% p学得越多,发现懂得越少!在进修过程中发现一些很有用,很值得进修的开源项目,今天在此举荐给巨匠。; [% W9 {  x, g5 ~/ g2 _/ u
一、JavaServlet和JSP标的目的
5 a% U2 q8 p$ F良多人都是年夜Servlet和JSP步入J2EE的。它就是J2EE的默示层,用于向客户呈现处事器上的内容。J2EE很主要的方面。不罗嗦了!年夜 家都知道的!下面就瞥绶举荐吧!! ]; s  O/ X& s1 V
1. Jakarta Tomcat
3 O3 u- T$ p2 K& }6 qApache基金会供给的免费的开源的Serlvet容器,它是的Jakarta项目中的一个焦点项目,由Apache、Sun和其它一些公司(都 是IT界的年夜鳄哦)及小我配合开发而成,全世界绝年夜部门Servlet和Jsp的容器都是使用它哦!因为Sun的介入和撑持,最新的Servlet和 Jsp规范总能在Tomcat中获得浮现。& l5 p1 s( g5 \' l
不外它是一个很是很是全的Serlvet容器,全数源码可能有4000页,对于初学者或者一般的熟行可能仍是斗劲年夜了!在你有能力时举荐研究!下载 地址:http://jakarta.apache.org/tomcat/index.html
7 `" x" E( s$ y( B$ [# A" y5 l3 `4 _下面举荐两个小一点的吧!
/ I, V* d' q5 u! M3 U2. Jetty" R  Q$ Z, f. i& L4 Z0 [7 i4 {; m
Jetty是一个开放源码的HTTP处事器和Java serverlet容器。源代码只有1000页摆布,很值灯揭捉究。有乐趣可以去http://jetty.mortbay.com/下载看看。我曾经翻了 一下,只是今朝没有时刻。(都化在博客上了,等博客根基定型,且内容完整了,再干我热衷的事务吧!)
6 D) V; m# R( a; y3. Jigsaw
6 S/ N7 k5 x* E" c  l( v4 zJigsaw是W3C开发的HTTP,基于Java 的处事器,供给了未来 Web 手艺成长的蓝图。W3C知道吧!(太有名气了,良多尺度都是它制订的!有空经常去看看吧!)下载网址:http://www.w3.org/Jigsaw 代码仅仅1000页摆布。8 e  d5 ?  F7 P1 g: C2 J
4. Jo!
5 O( j3 q# _( Y0 f" [Jo!是一个纯Java的实现了Servlet API 2.2, JSP 1.1, 和HTTP/1.1的Web处事器。它的特征搜罗撑持servlet tag,撑持SSI,高级线程打点,虚拟主机,数据缓存,自动压缩text或HTML文件进行传输,国际化撑持,自动年夜头加载Servlet、Jsp,自 动年夜头加载web工程文件(WARs),撑持WAR热部署和一个Swing节制台。jo!可以被用做jboss和jakarta avalon-phoenix的web容器。下载地址http://www.tagtraum.com/ 。我死力举荐巨匠在研究Tomcat之前研究该软件,主若是其比Tomcat小多了,且开发者供给斗劲全的手册。该标的目的研究这两个也就可以了!; a: n  r" z$ U% O4 a5 u' ^4 S
二、JDBC标的目的7 n: s9 a' j# ]5 b" h5 ^* J
良多人都喜欢JDBC,数据库吗!很深邃的工具,一听就可以糊弄人。其实等你真正研究了数据库的实现后发现,接口其拭魅真的太简单,太完美了!要想设 计如斯优异的框架仍是需要进修的。下面就举荐几个数据库的实现吧!( J; b8 y4 J- c6 b7 d! i
1. Hypersonic SQL
9 e2 k" t3 B' OHypersonic SQL开源数据库标的目的斗劲风行的纯Java开发的关系型数据库。仿佛不是JDBC兼容的,JDBC的良多高级的特征都没有撑持,不外幸好撑持ANSI- 92 尺度 SQL语法。我举荐它主若是它的代码斗劲少1600页摆布,如斯小的数据库值灯揭捉究,而且他占的空间很小,年夜约只有160K,拥有快速的数据库引擎。举荐 你的第一个开源数据库。下载地址:http://hsqldb.sourceforge.net/。) r& `) c$ S( @
2. Mckoi DataBase+ N/ s. G8 z/ X8 i
McKoiDB 和Hypersonic SQL差不多,它是GPL 的license的纯Java开发的数据库。他的 JDBC Driver 是使用 JDBC version 3 的 Specifaction。 他也是遵循 SQL-92 的尺度,也尽量撑持新的 SQL 特色, 而且撑持 Transaction 的功能。两个可以选一个吧!下载地址:http://mckoi.com/database/。
! |. Z6 K- Z% A1 X3. Apache Derby3 u% @9 e/ b/ V! B1 \
学Java的数据库我建议使用Apache Derby ,研究数据库想成为一个数据库的高手我建议你先研究Apache Derby。Apache Derby是一个高质量的、纯 Java开发的嵌入式关系数据库引擎,IBM® 将其捐募给Apache开放源码社区,同时IBM的产物CloudSpace是它对应的产物。Derby是基于文件系统,具有高度的可移植性,而且是轻量 级的,这使得它很是便于发布。主若是没有商业用户的很好的界面,没有其太多的功能。不外对于我们使用数据库、研究数据库仍是极其有用的。对于中小型的企业 说诚恳话你也不要用什么Oracle、SqlServer了,用Derby就可以了,况且是开源的呢!只要能阐扬其利益也不轻易啊!下载地 址:http://incubator.apache.org/derby。
% {9 a8 z8 _8 c1 ^' T* B0 L不外在没有足够的能力前,不要试图读懂它!注释和源代码15000页摆布,我一年的阅读量!能读下来而且能真正体味它,绝对高手!你能读完 Derby的源代码只有两种可能:1.你成为顶尖的高手――至少是数据库这部门; 2.你疯了。选择吧!!!!作为我自己我先选择Hypersonic SQL这样的数据库先研究,能过这一关,再继续研究Derby!不就是一年的阅读量吗!我可以化3年去研究若何做一个数据库其实仍是很值得的!有的人搞 IT一辈子自己什么都没有做,也到净有研究别人的工具!
& q7 Q1 w7 {. G2 [作为一个IT落伍于别国若干年的、年夜事IT的下流财富“外包”的国家的IT年夜业人员,我认为仍是先研究别人的优异的工具斗劲好!可以先研究别人的, 然后消化,学为己用!一心凭空诬捏其实遗憾!4 T5 }' a  P0 q1 _" Z& z
三、JMS标的目的
+ q5 T- A0 ~# g5 L0 @& VJMS可能对巨匠来说是一个斗劲目生的标的目的!其实JMS是一个斗劲轻易理解,轻易上手的标的目的。主若是Java动静处事,API也是相当简单的。不外 在企业应用中相当普遍。下面就介绍几个吧!* o8 t4 ~$ u4 N- ^
1. MOM4J: _! M% z5 C  f9 p" C
MOM4J是一个完全实现JMS1.1规范的动静中心件而且向下兼容JMS1.0与1.02。它供给了自己的动静措置存储使它自力于关系数据与语 言,它的客户端可以用任何说话开发。它可以算是一个小麻雀,很全实现也斗劲简单!它包含一个命名处事器,一个动静处事器,同时供给自己的持续层。设计也相 当的巧妙,完全操作操作系统中文件系统设计的不美观念。代码也很少,250页摆布,比来我在写该实现的源代码阅读方面的书,但愿明年年中能与巨论碰头!下载地 址:http://mom4j.sourceforge.net/index.html。
+ E# N: \5 O6 b) g! B9 Z3 E2. OpenJMS  k# K2 s- {9 h$ q# C
OpenJMS是一个开源的Java Message Service API 1.0.2 规范的实现,它包含有以下特征:( _( t* j% E* R. H4 _; K/ b# T& T
1. 它既撑持获得点(point-to-point)(PTP)模子和发布/订阅(Pub/Sub)模子。
% T" C4 [" `% [( a! A2. 撑持同步与异步动静发送 。
$ C, I3 B. P+ ?, c+ _9 r3. JDBC持久性打点使用数据库表来存储动静 。
: Y3 U# d1 D. B  q4. 可视化打点界面。$ c) h( i8 G; h2 Q& J) |. R  t
5. Applet撑持。$ h% \# s  Q7 c! [1 A. Q
6. 能够与Jakarta Tomcat这样的Servlet容器连系。
, R: H: H' C' r; r$ ]8 G1 B2 H; ~7. 撑持RMI, TCP, HTTP 与SSL和谈。
6 @5 I( v; c8 W1 g; i8. 客户端验证 。. w$ q5 F3 N) ]" ]; I& R/ S6 E
9. 供给靠得住动静传输、事务和动静过滤。( V; _% \( D: [9 u3 j
很好的JMS标的目的的开源项目!我今朝也在研究它的源代码!进修它可以趁逼揭捉究JNDI的实现、以及收集通信的细节。这是我JMS标的目的研究的第二个开 源项目。代码量1600页摆布吧!下载地址:http://openjms.sourceforge.net/index.html
6 ^+ V- W" _3 E# k7 @' O& b3. ActiveMQ
$ B/ M3 I. }. o; `) [. HActiveMQ是一个开放源码基于Apache 2.0 licenced 发布并实现了JMS 1.1。它能够与Geronimo,轻量级容器和任Java应用轨范无缝的给合。主若是Apache的可以肆意的使用和发布哦!小我斗劲喜欢Apache 的源代码!下载地址:http://activemq.codehaus.org/- L- B" G- A' W1 h
4. JORAM
% w# A+ Z  ?3 m7 [3 \& iJORAM一个近似于openJMS分布在ObjectWeb之下的JMS动静中心件。ObjectWeb的产物也长短常值灯揭捉究的!下面我还会给 巨匠此吐矣闽ObjectWeb的产物。下载地址:http://joram.objectweb.org/; S4 C$ ^! @* z
我小我举荐:OpenJMS和ActiveMQ!
) a0 ~4 O0 F# f: T四、EJB标的目的) J  O$ ?  b9 m
EJB一个斗劲“高级”的标的目的。Sun公司曾经以此在分布式计较规模重拳出击。不外自年夜呈现了Spring、Hibernation……后似乎没落 了!这个标的目的零丁开源的也斗劲少,首要EJB是和JNDI、JDBC、JMS、JTS、JTA连鲜ё仝一路的是以很少有零丁的。下面举荐两个不外仿佛也要下 载其它类库。6 F  \; P! O* S$ R$ B0 L
1. EasyBeans
, f- |- K9 u( `  dObjectWeb的一个新的项目,一个轻量级的EJB3容器,虽然还没有正式发布,可是已经可以年夜它们的subversion仓库中检出代码。代 码量斗劲小600页摆布,熟读它可以对收集编程、架构、RMI、容器的状况设计斗劲体味了!即学会EJB又能进修其它设计体例何乐而不为哦!下载地 址:http://easybeans.objectweb.org/9 H7 ~0 C1 i5 }  {0 f: j6 M! ]
2. OpenEJB- x. V. _3 V% D8 j
OpenEJB是一个预生成的、自包含的、可移植的EJB容器系统,可以被插入到肆意的处事器情形,搜罗应用轨范处事器,Web处事器,J2EE平 台, CORBA ORB和数据库等等。OpenEJB 被用于 Apple的WebObjects。听起来很好,我今朝没有研究过。不知道我就不举荐了。下载地址:http://www.openejb.org/
/ q  X* R) ^3 S% B- Y( g, w五、J2EE容器! R: [3 K$ ^1 ~% N
膳缦沔谈了这么多,都是J2EE的各个标的目的的。其实J2EE是一个规范,J2EE的产物一般要求专业供给商必需供给它们的实现。这些实现自己就是 J2EE容器。市场优势行的J2EE容器良多,在开源规模风行的只有很少,很少。其中最闻名的是JBoss。
4 l" @2 w3 c; A4 M0 b1. JBoss6 B! J5 ~4 G$ y% N( L# k; l
在J2EE应用处事器规模,Jboss是成长最为迅速的应用处事器。因为Jboss遵循商业友好的LGPL授权分发,而且由开源社区开发,这使得 Jboss广为风行。此外,Jboss应用处事器还具有良多优异的特质。1 _8 S2 O5 i1 `' H& j0 \
其一,它将具有概缦泓性的JMX微内查处事作为其总线结构;7 c3 _4 q5 H6 l9 f8 @' u
其二,它自己就是面向处事的架构(Service-Oriented Architecture,SOA);$ ]4 D8 f, x. [
其三,它还具有统一的类装载器,年夜而能够实现应用的热部署和热卸载能力。是以,它是高度模块化的和松耦合的。Jboss用户的积极反馈告诉我 们,Jboss应用处事器是健壮的、高质量的,而且还具有精采的机能。为知足企业级市场日益增添的需求,Jboss公司年夜2003年起头就推出了 24*7、专业级产物撑持处事。同时,为拓展Jboss的企业级市场,Jboss公司还签定了良多渠道合作伙伴。好比,Jboss公司同HP、 Novell、Computer Associates、Unisys等都是合作伙伴。
/ Q$ r& u8 ]' P0 {  M在2004年6月,Jboss公司公布揭晓,Jboss应用处事器经由过程了Sun公司的J2EE认证。这是Jboss应用处事器成长史上至今为止最主要的 里程碑。与此同时,Jboss一向在紧跟最新的J2EE规范,而且在某些手艺规模引领J2EE规范的开发。是以,无论在商业规模,仍是在开源社 区,Jboss成为了第一个经由过程J2EE 1.4认证的主流应用处事器。此刻,Jboss应用处事器已经真正成长成具有企业强度(即,撑持关头级使命的应用)的应用处事器。' w. [9 P2 ~; p3 H( G
Jboss 4.0作为J2EE认证的主要成不美观之一,已经于2004年9月顺遂发布了。同时,Jboss 4.0还供给了Jboss AOP(Aspect-Oriented Programming,面向方面编程)组件。迩来,AOP吸引了年夜量开发者的关注。它供给的新的编程模式使得用户能够将方面(好比,事务)年夜底层营业逻 辑平分手出来,年夜而能够缩短软件开发周期。用户能够零丁使用Jboss AOP,即能够在Jboss应用处事器外部使用它。或者,用户也可以在应用处事器情形中使用它。Jboss AOP 1.0已经在2004年10月发布了。 很有名吧!可以下载一个用一下,下载地址:http://www.jboss.org/' `& l! f) R* [
关于JBoss的使用资料也很是多,甚至比商业软件的还多。有机缘研究吧!/ j! i) A1 V0 P* h/ {% f' O/ s' v
2. JOnAS
& n" ^9 A9 M. a8 nJOnAS是一个开放源代码的J2EE实现,在ObjectWeb协会中开发。整合了Tomcat或Jetty成为它的Web容器,以确保合适 Servlet 2.3和JSP 1.2规范。JOnAS处事器依靠或实现以下的Java API:JCA、JDBC、JTA 、JMS、JMX、JNDI、JAAS、JavaMail 。下载地址:http://jonas.objectweb.org/% D8 V3 }/ c6 s0 f) d; H# d7 L
3.Apache Geronimo- t- ~( z# |) D) i& v
Apache Geronimo 是 Apache 软件基金会的开放源码J2EE处事器,它集成了众多前进前辈手艺和设计理念。 这些手艺和理念年夜多源自自力的项目,设置装备摆设和部署模子也各不不异。 Geronimo能将这些项目捉式的设置装备摆设及部署完全整合到一个统一、易用的模子中。作为合适J2EE尺度的处事器,Geronimo供给了丰硕的功能集 和无责任 Apache 许可,具备“当即部署”式J2EE 1.4容器的各类利益,其中搜罗:' ?/ t% j7 O0 W$ G
1. 合适J2EE1.4尺度的处事器 。2 V0 A( z- ?. _( W: ]! i# \% R/ B7 p, {
2. 预集成的开放源码项目 。7 G1 ^% ], g& O8 R, ~( j
3. 统一的集成模子 。
$ _+ [$ M* `0 t: [0 P4. 可伸缩性、可打点性和设置装备摆设打点功能。9 t# K4 `. w7 A( k
我一向斗劲举荐Apache的产物。主若是可以肆意自由地使用。下载地址:http://incubator.apache.org /projects/geronimo/& q0 }' n1 c$ K7 P* S7 `
六、其它8 ]8 z3 W+ A; z2 X* G2 n
讲了这么多巨匠可能很厌恶了!是不是良多良多啊!其实否则,我们不会的太多太多了!不会的太多太多了。不管你是不是J2EE高手,仍是J2SE高 手,有些工具你要绝对很精明的。例如:1.Java的Collections Framework就是java的数据结构了,不仅要吃透它,还要能按照需要扩展它,操作其思惟建树一个自己的数据结构。2.收集编程必定要会吧,此刻以 及往后良多轨范都是不在统一台机械上的,不会拓馇怎么行哦!3.IO必定要会的吧!你的轨范莫非不用输入输出数据啊!整个IO包加NIO也有600多页的 源代码哦!4.JDBC你要会吧!数据库都不会,在你的企业应用中你的数据又保留到哪里啊!文件中――太落伍了吧!典型的没有学过J2EE。尽管数据库背 后也是采用文件保留的。5.Serverlet、JSp你若是做网页做网站,必定要做到。问你一个简单的问题,网页中若何实现分页啊!有具体体例的就在本 文章后讲话吧!6. Ant要会吧!java说话中发布的工具,近似与c中的make工具。7.JUnit用过吧!单元测试软件。你不要啊!你的软件就没有bug!你牛!(建 议巨匠研究研究其源代码,很有用的框架,包含年夜量的设计模式,源代码不到100页!看了只能感伤――高手就是高手)细心的伴侣可以看到在你使用的良多 IDE工具中都有JUnit哦!就是它。
3 f3 ~+ u/ ~+ N8 I一切的一切才刚刚起头!有乐趣,有需要你可以研究数据库毗连池的框架,如:C3P0、Jakarta DBCP、 DBPool….可以研究J2EE框架Spring……. Web框架Struts……持久层框架Hibernate…..甚至开发工具Eclipse…..Sun率领的点对点通信的JXTA…..报表工具 JFreeChart、JasperReports…..分布式收集编程的CORBA、收集通信的JGROUPS、XML解析的xerces…..(在不 经意间开源已经步入你的电脑,不信啊!你JDK的安装目录jdk1.6.0 src com sun org apache就是Xerces,一个XML解析的闻名的开源 项目)8 Y& {5 r6 l  d% C$ e
不管怎么样我仍是建议年夜根基的做起,学精J2SE,熟读它的源码,切确体味其设计理念,然后分头击破J2EE――一口吃不成一个胖子!不要贪多贪 广!脚结壮地就可以了!. Y7 w' G" P0 ^, {8 m
 </p>三、通过标记库JSP与XML交互
  P& K# j4 p7 Z  这也就是在前文中重点提到的,但是因为它实在太重要了,所以在本文中我必须也要提到。标记库可以定义出现在JSP页面中的作为类XML元素的自定义标签,可以把特定的Java代码与每个标记都关联起来。 例如,假定你可以访问一个天气情况数据库,而且你需要输出现在的天气状况。 那么,你可以在JSP中插入JDBC程序代码直接查询数据库(虽然这并不是一个好的选择),把这些代码封装到一个JavaBean内,或者把它包装成一个标记库。 使用最后一个选择,你的JSP页面内的程序代码看上去就像:
- F: B/ T$ L7 Z/ D  < %@taglib uri="the TLD file" prefix="foo" %>
/ H* G' C* y# c& V  Current weather is < foo:Weather/>
8 S. F7 d( u  e* G! m  注意在上述程序代码中看不到任何Java代码的踪迹。 作为一个页面设计人员,你使用一种熟悉的语法就像< foo:weather/>,这些与其它的任何标记看起来非常相似。 在页面中包含现在的天气状况的HTML字符串的地方插入它。
/ S4 q. P( T9 L4 E, R$ |& M  标记库有一个关联的XML格式的描述符文件,名叫Tag Library Descriptor(标记库描述符,TLD)。 在TLD文件中的每个标记都有一个条目,包括它的名称,版本和其它的任选信息。 在JSP页面内,你可以用" < %@_taglib prefix = " foo " %> "指令指定TLD文件。 属性" prefix "用来指定一个前缀,用来在JSP页面内使用特定的库来引用任何标记。 那为什么我们要使用标记< foo:Weather/>而不仅仅是< Weather/>。 TLD文件的精确位置依赖于正在使用的应用程序服务器。
( P! g; ]2 e- v  一个标记库标记可以代替为了完成这段程序逻辑的相应的Java程序代码。 每个标记都相当于一个相同名称的Java类。 这个类必须实现TagSupport接口,包含捕获事件触发器方法作为处理这个页面的JSP引擎。 当它第一次遇到这个标记的时候,引擎就会调用doStartTag ()方法。 可以使这个方法为空或者当需要的时候才执行应用程序逻辑。 当该方法返回SKIP_BODY时,那么引擎跳过这个标记体。 当它返回EVAL_BODY_INCLUDE时,引擎将会处理这个标记以及它的子标记。 类似地,JSP引擎在分析了结束标记之后就会调用doEndTag ()方法。 doAfterBody ()方法让你可以在引擎处理元素体之后执行动作,但是必须在doEndTag ()方法作用之前。 下面就是实现天气状况的Weather类的一个样本程序代码:4 ^5 J/ i9 U/ C; ~' F
  import javax.servlet.jsp.*;
: V$ O7 w  E8 d. \& b4 W$ [  import javax.servlet.jsp.tagext.*;& f3 X0 D$ }! X  \* b' W
  import java.io.*;! O; b0 R% p/ o8 F
  public class Weather extends TagSupport {" G/ {7 H4 Y. ^' D5 ~; q$ N
  public int doStartTag() {
* u( ?2 r" U2 z  try {2 r# N/ |2 o0 r  ~% l# W/ a. \
  JspWriter out = pageContext.getOut();' o) v4 z) V: J/ X4 e9 K
  out.print(" sunny and cloudy mixed with " +( H. A5 l4 g5 E. ~% N, h! b
  "rain and sunshine. ");
- j8 v  x1 i! q/ y  } catch (IOException e) {
8 @% [/ r9 Y/ D" N1 t  System.out.println("Error " + e);8 R4 K1 G% B6 V" M% e, C" g
  }
% w0 \7 m2 @, f4 K  return (SKIP_BODY);# _* Y! u* a6 g  i- \# g& T
  }
, [) K& u4 o, h* j( C7 z' n8 C  }' N; C1 B. N7 [& l2 \) F  W9 ^
  当引擎遇到" < somePrefix:Weather/> "标记的时候,它会在标记库内搜索一个同名的类。 如果doStartTag ()方法被实现的话(在本例中是这样的),它就会被调用。 这就使字符串包含适应显示的天气情况。 因为方法返回了SKIP_BODY,JSP读取器移动到标记的末尾。
. G5 Q; h! x0 l: S! [& a. j3 s  最简单的使用JSP和标记库的方法就是使用Apache Tomcat引擎。 这个引擎也充当Servlet和JSP应用程序接口的引用实现。
* R0 l& H% |0 U( f- y# U  当使用标记库时,JSP页面看上去就非常像XML文件了。 当JSP页面被处理时,引擎执行与标记相关联的程序代码(实际上,首先调用JSP引擎把JSP页面翻译成一个servlet,然后再编译servlet。 与标记库相关联的方法都被包含在servlet中。),一个熟悉XML的人就可以设计并使用各种各样的页面布局进行试验,而不必改变任何Java程序代码。当然,代码与数据的分离的程度还是主要依赖标记库元素设计的好坏程度。
# y! D- z6 z9 A  JavaServer Pages ( JSP)和XML是Sun的J2EE的两个至关紧要的组件。 JSP是用于创建应用程序服务器端程序的有效工具,而客户可以是一个浏览器,一个设备或其它的应用程序。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-3 05:30 , Processed in 0.440108 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表