JAVA网页编程之JSTL改善JSP来简化网页的完成历程(1)
java是一种面向对象的编程语言,优点是可移植性比较高,最初设计时就是本着一次编写到处执行设计的。可以开发各种应用程序和游戏,不过速度没有c++快,所以一般是不用java来编写应用程序和电脑游戏。js|历程|网页概述JavaServerPages(JSP)尺度标志库(JSTL)的版本的公布关于JSP/servlet开辟者来讲是一个严重的停顿。有了一个表达言语(EL)和一组四种壮大的、易于进修的尺度标志库,JSTL极有大概不久后成为完成静态的、基于Java的站点的次要办法。
1996年对JSPservlet的先容使得Java成为静态网页开辟的公道的选择。随后呈现的Java服务器页(JSP)是走向疾速的、可保护的Java网页完成历程的公道退化的一步,紧接着就呈现了JSP标志的撑持。可是2002中期的JSTL(JSP尺度标志库)的公布才是进一步减速和简化开辟历程最年夜的一步。
在本文中,我注释了JSTL的功效,也涵盖了你启动JSTL所需的每件事变。假定你有了对Java、JSP、XML和安装一个Web容器的基础了解。假如你对这些主题感应生疏,你能够在Resources(http://www.javaworld.com/javaworld/jw-02-2003/jw-0228-jstl.html?#resources#resources)上扫瞄一下背景参考。鄙人面的论述中,假定你有XML和SQL的常识。
安装JSTL撑持
关于我们的JSTL安装例子来讲,我们利用Tomcat4.1(只管恣意撑持Servlet2.3和JSP1.2申明的servlet容器都应当能事情)。起首,下载Tomcat4.1而且按唆使举行安装(注重:JSTL必要一个JSP1.2Web容器)。
用tomcat4start程序启动Tomcat,而且运转index.html页来确保Tomcat是激活的、且运转优秀。
接上去,安装JSTL撑持,你能够从Jakarta站点下载JSTL撑持,(http://www.javaworld.com/javaworld/jw-02-2003/jw-0228-jstl.html?#resources#resources)并依照上面步骤:
1.从Jakarta站点下载JSTL检索、解压/脱档该文件。(http://www.javaworld.com/javaworld/jw-02-2003/jw-0228-jstl.html?#resources)
2.复制你已解压为common/lib的jar文件到你的Tomcat安装路径中(只管我们的项目不必要一切的jar文件);这使得JSTL文件合用于你的恣意Web使用。
3.关于恣意你想利用JSTL的Web使用来讲,复制.tld文件到你的Web使用的WEB-INF目次下。
4.关于你的JSTL的Web使用,编纂web.xml并增加以下输出:
<taglib><taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri><taglib-location>/WEB-INF/fmt.tld</taglib-location></taglib><taglib><taglib-uri>http://java.sun.com/jstl/core</taglib-uri><taglib-location>/WEB-INF/c.tld</taglib-location></taglib><taglib><taglib-uri>http://java.sun.com/jstl/sql</taglib-uri><taglib-location>/WEB-INF/sql.tld</taglib-location></taglib><taglib><taglib-uri>http://java.sun.com/jstl/x</taglib-uri><taglib-location>/WEB-INF/x.tld</taglib-location></taglib>
这些输出让你的Web使用可以使用JSTL标志库的表达言语(EL)版本。这些输出的地位有干系!假如你不愿定将他们输出到那边,关于web.xml选项温柔序的威望性引导在文档范例界说(DTD)中界说过:http://java.sun.com/j2ee/dtds/web-app_2_2.dtd。
5.当你创立了一个利用JSTL的JSP页时,将他输出到你的Web使用的主目次下,就像别的JSP和HTML页一样。你能够为该页恣意取名,可是它必需有一个.jsp的扩大名。
基本道理
起首,一切的JSTL也是JSP页,JSTL只是JSP功效的一个超集。
一样,一切的JSTL标志是无效的XML。这意味着:假如你将JSTL标志以外的内容看成一时文本(一般是HTML)时,剩下的JSTL标志必需看成正当的XML来注释。这里有一些隐含的划定规矩,它请求年夜部分XML语法都是准确的。
JSTL供应一组四个尺度标志库(core中心、internationalization/format国际尺度化/格局、XML和SQL)并撑持EL。JSTL和EL的基础计划目标是简化网页开辟和完成。
在本文中,我们遵守JSTL仿单的定名划定规矩,而且把JSTL标志看成举措。一个JSTL标志对应于某个举措;挪用举措明白的提示我们:他们增加静态举动到一个别的的静态页上。
JSTL标志库有两个版本:一个用你之前利用的办法将JSP表达式拔出,如<%=...%>,另外一个利用一个JSTLEL.我会在前面进一步会商在JSTL中的EL撑持。
EL撑持
要了解以后JSTL对EL撑持的形态,让我们反省相干的仿单是如何处置的。Java仿单哀求(JSR)专家构成员决意:因为某种缘故原由,EL标准申明应当是JSP仿单的一部分,而不是JSTL仿单的一部分。EL完全的仿单成为JSP2.0的一部分。由于JSTL1.0在JSP1.3之前已完成,JSTL作者不能不对用于JSTL1.0的EL撑持完成做一个公道的推测(了局多是相称好的)。一个JSTL保护版本将与JSP1.3仿单坚持分歧,并为了使EL合适JSP1.3仿单,JSTL保护版本做了一些修改。
本文形貌的EL提要大概期近将公布的JSTL版本中有一点修改,可是任何修改都是巨大的。
EL用于复杂的语法界说了一套功效壮大的言语,它很简单进修。它交融着JavaScript言语和Perl言语较好的部分的一些作风。EL表达式,集成了来自四种尺度标志库的JSTL标志,供应了一个伟大的、天真的属性集。
一切的EL表达式都被${}括起来。JSTL中的表达式老是JSTL标志中的属性值的一部分。表达式能够是属性的一部分大概兼并和嵌进到一个字符串间接量中。JSTL属性也能够包括复杂的字符串间接量。在接上去的JSTL中,我们在一个来自中心库的c:out举措中申明每种情形,这个中心库将它的value属性值送到JSP输入上:
<c:outvalue="${anExpression}"/><c:outvalue="literalText${anExpression}${anotherExpression}"/><c:outvalue="literalText"/>
EL也界说了一套划定规矩用于强迫表达式中的值转换为高低文绝对应的范例。我们在这里不具体会商这些划定规矩;但是,它的办法与用Perl言语界说的体例十分类似(就像Perl言语中的做法一样,该办法天经地义的运转优秀,可是,偶然,也会呈现大概不是你非常想要的那种了局,但你能够承受)。
EL为会见对象属性、汇合元素、一组埋没对象和利用相干的、逻辑的和算术的操纵符供应了撑持。关于索引的属性来讲,包含数组和java.util.List类在内,元素可用以下语法会见:
${alist}${aList}
JavaBean属性和java.util.Map元素(它代表一系列名字/值对)都可使用以下办法的一个会见失掉。在以下的开首两个表达式里,我们能够会见到一个用JavaBean言语定名为aProperty的属性大概用关头字aProperty会见到一个Map实体。在第三个表达式中(注重:我已省略了引号),我们用保留在变量aVariableContainingPropertyName中的一个名字会见了在anObject以内的一个元素:
${anObject.aProperty}${anObject["aPropertyName"]}${anObject}
在EL中界说了很多埋没变量:
●pageContext:用于该网页的pageContext对象
●pageScope,requestScope,sessionScope,和applicationScope:这些是映照这些局限的每个变量到值上的Map集。
●param和paramValues:用页会见传送的参数,与在JSP中一样
●header和headerValues:用页哀求传送的头,与在JSP中一样
●cookie:Map映照cookie程序到特定的cookie对象上
EL界说了全套与你在Java中十分熟习的那些完整对应的操纵符。算法操纵符包含+、-、*、/(或div)、和%(或mod)。相干的操纵符包含==、!=、<、>、<=、>=,它分离对应于eq、ne、lt、gt、le、和ge。我不想具体论述这些操纵符,由于他们都能自我申明。
而学习JAVA我觉得最应该避免的就是:只学习,不思考,只记忆,不实践! 是一种突破用户端机器环境和CPU 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 是一种使用者不需花费很多时间学习的语言 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。 Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站 我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。 Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 是一种语言,用以产生「小应用程序(Applet(s)) 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
页:
[1]