分类:
2008-10-16 19:25:08
JSTL是一个已经被标准化的标记库集合,她支持迭代、条件、XML文档的解析,国际化,和利用SQL与数据库交互的功能。起初,JSTL规范一直由JCP( Community process program)组织下的JSR #52 发展完善,"JCP肩负着Java 技术发展的重任"--官方网站这样评价。JCP作为一个开放性的组织,他同时吸收正式的会员和非正式会员.JCP对于Java技术规范的形成与发展发挥了重要的主导作用。JSTL主要包括四个基本部分的标记库:Core,XML,国际化,和对SQL的支持。由于这篇文章的主要是以其中的SQL部分的应用来快速了解JSTL,所以我们这篇文章只介绍了 Core和SQl标签库的一些基本功能。
这项技术简单而且功能强大,足以和PHP、ColdFusion一较高下.他在拓展Java的应用领域方面有足够的能力,这些领域不只包括大型的可再升级的Web应用程序,对于仅拥有简单主页的Web程序一样没问题。这允许你在建立站点的时候可以避免那些经常考虑的XML的集成和与数据库的连接。正如我刚才提到的一样,JSTL的关键点就是简单易用。还有,那就是JSTL是基于JSP构建的, 他允许我们使用所有的Java技术,这一点我们有必要记住。
开始之前,我们需要弄清楚怎样才能运行JSTL.由于是基于JSP技术的,所以我们运行它就需要一个能够编译JSP的容器,这里我们使用免费的JSP容器:TOMCAT().至于如何安装这个产品已经超出了本文所讲述的范围。毫无疑问,这个软件产品现在已经很普及了,而且关于如何安装的文档资料也是很多。这里假设您已经安装并成功配置了这个容器,你只需再安装JSTL运行所需文件即可,它可以从这里你不需要真正的安装它,只需要将其中的.JAR文件包含到你的应用程序的WEB-INF/lib目录下即可,稍后我会具体说到该怎么做.
因为我们要在一个支持标准SQL的数据库上运行程序,你需要在你的电脑上安装有一个数据库。数据库的类型有许多种,这里我选择了MySql。我之所以选择他的原因在于首先,我们需要展示JSTL对于构造简单快速的应用程序领域所起的作用,同时能和一直在这个领域处于主导地位的PHP+MySql有所比较;第二点那就是MySql是可以免费并包含有一个针对JAVA的JDBC驱动.总之,为了使用下面的例子,你需要一个MYSQL(; MySql Connector/J JDBC驱动程序;还有就是MySql control center ),这个产品可以让你非常容易的操作管理Mysql数据库文件。全部下载完成后,你需要安装mysql和mysql Control Center。另外还有就是mysql的JDBC驱动需要放到你的web应用程序中的/Web-INF/lib目录中。
在创建程序代码之前,你需要创建并填写数据库表。关于这方面的主题文章也相当广泛,具体如何操作超出了本文的范围。这里我推荐给你我们上面提及的一个可视化的管理工具 MySQL Control Center.你可以用他来创建一个用来运行程序的测试用户,数据库以及创建一个测试表,并填写若干记录。关于登陆名及密码 数据库名称这些配置环境参数,你应该记住他们,稍后需要应用到我们的代码中。
现在,你就可以准备创建自己的第一个JSTL应用程序了它需要我们做下面一些事情:
整个实例程序代码包括两个文件Hello.jsp和 Continue.jsp
Hello.jsp文件允许你输入数据库名称、登陆名称、登陆密码、数据库表名。Continue.jsp:接受Hello.jsp中的数据信息并且连接数据库,并对数据库中的表执行一个Select请求.
下面是这个系统所有的代码文件,我将逐一进行解释。这些代码相当简单,对于代码的结构,我相信你即使没有我的解释你也能理解的.
1: <!-- Hello.jsp --> 2: <html> 3: <head> 4: <title>Hello</title> 5: </head> 6: <body bgcolor="#ffffff"> 7: <h1>Please, enter all necessary information and click OK.</h1> 8: <form method="post" action="Continue.jsp"> 9: <br>Your login to database: <input type="text" name="login" size="15"> 10: <br>Your password to database: <input type="password" name="password" size="15"> 11: <br>Your database name: <input type="text" name="database" size="15"> 12: <br>Your database table: <input type="text" name="table" size="15"> 13: <br><br><input type="submit" name="submit" value=" OK "> 14: </form> 15: </body> 16: </html> |
(请注意文本左侧的数字只是为你提供一些标记信息,你不需要将他们输入到你的代码文件中。)
上面就是所有Hello.jsp的源代码,很惊奇吧,他仅仅是纯粹的HTML代码,就这么简单,我想应该没有注释的必要了.我之所以将这些代码片段包含进文章中就是为了展示一下JSTL集成到那些需要快速扩充额外功能的HTML站点中是多么的简单.让我再为你展示一下Continue.jsp的全部代码,看过之后,你就会对 JSTL有些了解了。
1: <!-- Continue.jsp --> 2: <%@ taglib prefix="c" uri="" %> 3: <@ taglib prefix="sql" uri="" %> 4: <c:set var="h" value="localhost"/> 5: <c:set var="l" value="${param.login}"/> 6: <c:set var="p" value="${param.password}"/> 7: <c:set var="d" value="${param.database}"/> 8: <c:set var="t" value="${param.table}"/> 9: <html> 10: <head> 11: <title>Continue</title> 12: </head> 13: <body bgcolor="#ffffff"> 14: <sql:setDataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://${l}/${d}?user=${u}&password=${p}"/> 15: <sql:query var="result"> 16: SELECT * FROM <c:out value="${t}"/> 17: </sql:query> 18: <c:forEach var="row" items="${result.rowsByIndex}"> 19: <c:out value="${row[0]}"/> <br> 20: </c:forEach> 21: </body> 22: </html> |
(请注意文本左侧的数字只是为你提供一些标记信息,你不需要将他们输入到你的代码文件中。)
[1]