仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 476|回复: 14
打印 上一主题 下一主题

[学习教程] JAVA编程:JSTL改善JSP来简化网页的完成历程(3)

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:21:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
其实你不用Struts,spring这些工具,直接用jsp,servlet能够很方便地写出来,而且,可以根据个人的水平、爱好,有很多方案。而struts,spring这些工具的出来。js|历程|网页流程把持

让我们转为会商JSTL的流程把持和前提标志。假如你已用任何一种言语利用了前提和流程把持语句,实际上这里没甚么奇怪的工具。

c:if举措处置复杂前提语句的测试。盘算测试属性中的Boolean表达式的值,假如表达式为真的话,盘算体的内容。鄙人面的举措中,我们也申明了备选项var属性。为了今后的利用,var属性保留测试了局在页(假如没有指定其他scope属性的话)中。
  1. <c:iftest="${status.totalVisits==1000000}"var="visits">Youarethemillionthvisitortooursite!Congratulations!</c:if>
复制代码

上面我们展现了用c:choose、c:when、和c:otherwise互换逻辑的JSTL的撑持。一组c:when举措大概包含在一个备选的标志内,假如在c:when块中任何表达式盘算值为真的话,就不必盘算c:choose举措内的测试。假如c:when块中没有一个测试盘算值为真的时分:假如呈现c:otherwise举措内容时,则盘算c:otherwise举措的内容:
  1. <c:choose><c:whentest="${item.type==book}">...</c:when><c:whentest="${item.type==electronics}">...</c:when><c:whentest="${item.type==toy}">...</c:when><c:otherwise>...</c:otherwise></c:choose>
复制代码

c:foreach举措供应一个简单的办法来迭代一个汇合的元素。假如你想只迭代汇合的一部分的话,你能够分离用begin、end、和step属性指定出发点、尽头和一个递增值。鄙人面的例子中,我们在变量customerNames中迭代一个汇合的内容;在每一个轮回中,下一个元素输出到变量名内并在c:foreach举措的体内盘算:
  1. <table><c:forEachvar="name"items="${customerNames}"><tr><td><c:outvalue="${name}"/></td></tr></c:forEach></table>
复制代码

记得Java的StringTokenizer类吗?有了c:forTokens举措,你能够用JSTL取得相似的功效。这个程序片段可以使用在delims属性中界说的定界符经由过程itemsString属性中的条目迭代。注重,items属性不用是一个字符间接量;它能够是任何无效的EL表达式:
  1. <table><c:forTokensitems="47,52,53,55,46,22,16,2"delim=","var="dailyPrice"><tr><td><c:outvalue="${dailyPrice}"/></td></tr></c:forTokens></table>
复制代码

在接上去的完全的JSTL页中,我列出了已传送到该页的一切参数。param和paramValues对象是映照关头字到一个或多个值的JavaMap集。在本例中,我们找出了用于汇合的每一个MapEntry的关头字即参数名,而且利用关头字来查找一切与关头字联系关系的参数值:
  1. <%@tagliburi="http://java.sun.com/jstl/core"prefix="c"%><html><body><head><title>ParameterListingExample</title></head><br><b>Parametervaluespassedtothispageforeachparameter:</b><tableborder="2"><c:forEachvar="current"items="${param}"><tr><td><b><c:outvalue="${current.key}"/></b></td><c:forEachvar="aVal"items="${paramValues[current.key]}"><td><c:outvalue="${aVal}"/></td></c:forEach></tr></c:forEach></table></body></html>
复制代码

其他举措

我们也必要会商一些其他主要的中心标志库举措。在网页完成中一个潜伏的成绩局限与URL编码有关。没有URL编码,在网页中传送的URL的某个字符如空格,大概会利诱Web服务器。URL编码确保这些特别的字符用不引发利诱的字符取代。以下例子在变量myUrl中界说了一个URL,该变量myUrl由一个URL和一系列参数构成。URL举措(注重,这里只在JSTL意义上的举措)包管一切字符都准确的编码:
  1. <c:urlvalue="http://acme.com/exec/register"var="myUrl"><c:paramname="name"value="${param.name}"/><c:paramname="country"value="${param.country}"/></c:url><ahref=<c:outvalue="${myUrl}"/>>Register</a>
复制代码

在下面的代码中,param举措复杂的界说了一组名值对。

JSP同意计划者用指令包含其他页的内容。JSTL用JSTLc:import举措扩大了这个观点。c:import的次要上风是:你能指定一个恣意的URL;也能够包括你的Web使用以外(W3C的任何中央)的页的内容大概你的服务器上的另外一个Web使用内的页的内容。

关于一组与HTTP相干的标志来讲,没有一个办法处置HTTP重定向是不完全的。JSTL用c:redirect举措撑持它。

国际化标志库

在会商了JSTL撑持国际化中,我假定你已有了对以下主题的公道的了解:

●资本包和Java怎样找到它们

●Locale类

●资本包查找和MessageFormat类

●部分编码和它与Java国际化的干系

●Java文本和数据格局化

我鄙人面的两个部分会商了国际化标志库。在第一部分,我包含了你大概利用的格局化息争释相干的举措(它最后对应于java.text封装包中的类),只管你没有开辟过完整的国际化使用程序,大概你也要用到它。在第二部分,我申明了更针关于国际化的举措。

假如存在一个远程的大概性,你的使用程序会在你本国以外利用。假如你从一入手下手就创建在国际化的撑持上,那末开辟就会加倍简单。不管你利用何种办法来开辟,即便像JSTL一样简单利用的办法,一入手下手创建在国际化撑持上也是非常无益的。
C#是盗用了Java的源代码,仿照开发的,原因是Java是开源的啊,盗了也白盗,还有一点,开发C#语言的团队是就是开发Java语言的团队,是微软重金挖过去的啊
精灵巫婆 该用户已被删除
沙发
发表于 2015-1-19 06:01:51 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
小妖女 该用户已被删除
板凳
发表于 2015-1-20 17:48:47 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
变相怪杰 该用户已被删除
地板
发表于 2015-1-29 05:12:43 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
愤怒的大鸟 该用户已被删除
5#
发表于 2015-1-31 12:52:34 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
深爱那片海 该用户已被删除
6#
发表于 2015-1-31 20:30:20 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
乐观 该用户已被删除
7#
发表于 2015-2-1 16:19:58 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
小魔女 该用户已被删除
8#
发表于 2015-2-5 20:06:06 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
柔情似水 该用户已被删除
9#
发表于 2015-2-6 01:46:31 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
海妖 该用户已被删除
10#
发表于 2015-2-11 01:51:54 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
简单生活 该用户已被删除
11#
发表于 2015-2-11 03:55:12 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
老尸 该用户已被删除
12#
发表于 2015-3-1 20:41:23 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
只想知道 该用户已被删除
13#
发表于 2015-3-11 06:52:58 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
飘飘悠悠 该用户已被删除
14#
发表于 2015-3-17 22:55:20 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
若天明 该用户已被删除
15#
发表于 2015-3-25 04:27:08 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 11:44

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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