jsp

位置:IT落伍者 >> jsp >> 浏览文章

用JSTL实现JSP应用程序快速开发


发布日期:2019年01月19日
 
用JSTL实现JSP应用程序快速开发

在这篇文章中我将为大家介绍一种基于JSP且灵活有趣的技术那就是 JSTLJSTL全称为Java Server Pages Standard Tag Library虽然JSP已经变的非 常流行但JSTL在基于SQL数据库的简单快速的前后台开发中还是没有被广泛的 应用一旦你了解了JSTL你就会了解到它的优点并发现在你作为程序员的日常 工作中它已经被应用到了很多方面我这里假设你已经熟悉HTML能理解基本的 SQL语句和Jsp的基础知识因为下面的内容要涉及到这些知识

JSTL是一个已经被标准化的标记库集合她支持迭代条件XML文档的解析 国际化和利用SQL与数据库交互的功能起初JSTL规范一直由JCP(Java Community process program)组织下的JSR # 发展完善"JCP肩负着Java 技术 发展的重任"官方网站这样评价JCP作为一个开放性的组织他同时吸收正式 的会员和非正式会员JCP对于Java技术规范的形成与发展发挥了重要的主导作用 JSTL主要包括四个基本部分的标记库CoreXML国际化和对SQL的支持由于 这篇文章的主要是以其中的SQL部分的应用来快速了解JSTL所以我们这篇文章只 介绍了 Core和SQl标签库的一些基本功能

这项技术简单而且功能强大足以和PHPColdFusion一较高下他在拓展Java 的应用领域方面有足够的能力这些领域不只包括大型的可再升级的Web应用程序 对于仅拥有简单主页的Web程序一样没问题这允许你在建立站点的时候可以避 免那些经常考虑的XML的集成和与数据库的连接正如我刚才提到的一样JSTL的 关键点就是简单易用还有那就是JSTL是基于JSP构建的 他允许我们使用所有 的Java技术这一点我们有必要记住

开始之前我们需要弄清楚怎样才能运行JSTL由于是基于JSP技术的所以我 们运行它就需要一个能够编译JSP的容器这里我们使用免费的JSP容器TOMCAT ()至于如何安装这个产品已经 超出了本文所讲述的范围毫无疑问这个软件产品现在已经很普及了而且关于 如何安装的文档资料也是很多这里假设您已经安装并成功配置了这个容器你 只需再安装JSTL运行所需文件即可它可以从这里下载 你不需要真 正的安装它只需要将其中的JAR文件包含到你的应用程序的WEBINF/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应用程序中的/WebINF/lib目录中

在创建程序代码之前你需要创建并填写数据库表关于这方面的主题文章也 相当广泛具体如何操作超出了本文的范围这里我推荐给你我们上面提及的一 个可视化的管理工具 MySQL Control Center你可以用他来创建一个用来运行程 序的测试用户数据库以及创建一个测试表并填写若干记录关于登陆名及密 码 数据库名称这些配置环境参数你应该记住他们稍后需要应用到我们的代码中

现在你就可以准备创建自己的第一个JSTL应用程序了它需要我们做下面一些 事情

整个实例程序代码包括两个文件Hellojsp和 Continuejsp

Hellojsp文件允许你输入数据库名称登陆名称登陆密码数据库表名 Continuejsp接受Hellojsp中的数据信息并且连接数据库并对数据库中的表 执行一个Select请求

下面是这个系统所有的代码文件我将逐一进行解释这些代码相当简单对 于代码的结构我相信你即使没有我的解释你也能理解的

: <! Hellojsp
: <html>
: <head>
: <title>Hello</title>
: </head>
: <body bgcolor="#ffffff">
: <h>Please enter all necessary information and click OK</h
: <form method="post" action="Continuejsp">
: <br>Your login to database:
<input type="text" name="login" size="">
: <br>Your password to database:
<input type="password" name="password" size="">
: <br>Your database name:
<input type="text" name="database" size="">
: <br>Your database table:
<input type="text" name="table" size="">
: <br><br><input type="submit" name="submit" value=" OK ">
: </form>
: </body>
: </html>

(请注意文本左侧的数字只是为你提供一些标记信息你不需要将他们输入到 你的代码文件中)

上面就是所有Hellojsp的源代码很惊奇吧他仅仅是纯粹的HTML代码就 这么简单我想应该没有注释的必要了我之所以将这些代码片段包含进文章中就 是为了展示一下JSTL集成到那些需要快速扩充额外功能的HTML站点中是多么的简 单让我再为你展示一下Continuejsp的全部代码看过之后你就会对 JSTL有 些了解了

: <! Continuejsp
: <%@ taglib prefix="c" uri="%>
: <@ taglib prefix="sql" uri="%>
: <c:set var="h" value="localhost"/>
: <c:set var="l" value="${paramlogin}"/>
: <c:set var="p" value="${parampassword}"/>
: <c:set var="d" value="${paramdatabase}"/>
: <c:set var="t" value="${paramtable}"/>
: <html>
: <head>
: <title>Continue</title>
: </head>
: <body bgcolor="#ffffff">
: <sql:setDataSource driver="commysqljdbcDriver"
url="jdbc:mysql://${l}/${d}?user=${u}&password=${p}"/>
: <sql:query var="result">
: SELECT * FROM <c:out value="${t}"/>
: </sql:query>
: <c:forEach var="row" items="${resultrowsByIndex}">
: <c:out value="${row[]}"/> <br>
: </c:forEach>
: </body>
: </html>

(请注意文本左侧的数字只是为你提供一些标记信息你不需要将他们输入到 你的代码文件中)

这就是我们所有的代码了是不是非常不错?现在我门来解释一下上面这些代 码的作用

是 HTML 的注释说明

这些 JSP 标签是为了引用外部的 标签库更确切的说这里是引用了 JSTL库中的 Core 和SQL标签库部分我们为他们都设置了前缀名称以便于我们 通过这些前缀名称访问被引入的标签库中的功能方法

正如 Hellojsp 真正运行的样子他将请求continuejsp Continuejsp获得请求后就需要得到并解析来自Hellojsp的若干变量我们使用 了这样的方式${paramYOUR_VAR}在第行<c:set标签将变量${h}设置为 "localhost"第五行变量${l}将获取我们在 Hellojsp中的login文本域中输入的 信息行的变量将分别获得来自Hellojsp中用户所输入的密码数据 库名称数据表名称

是一些我经常用来常见HTML网页头的简单的HTML标签马上重要的 功能马上要到了

我们试图用我们先前获得的mysql驱动程序(commysqljdbcDriver)建 立数据库连接在URL中我们指明数据库连接所需要的参数象数据库名称主 机名称登陆名及登陆密码依此我们可以用其它任何的JDBC驱动程序连接其 相对的数据库如果我们需要连接其他的SQL数据库只需更改这个 URL就够了

这里我们执行了一个Select 查询请特别注意第我们使用了 另一个JSTL功能函数<c:out 用来输出我们所获取的数据表名称这里我们同样 可以使用其他的SQL命令比如说 INSERTDELETE等等要执行这些没有返回值 的查询请求你就需要使用<sql:update JSTL功能函数了他可以直接执行他们 就象<SQL:query一样只是执行它是不需要特别指定结果变量来存储语句执行返 回的结果

既然我们执行了上面的SELECT查询语句我们就应该把他的返回结 果显示出来<c:forEach 就是JSTL 中一个具有迭代功能的函数执行它时我 们通过${resultrowsByIndex}将返回的每一个数据行信息返回给变量${row}紧 接着在第 我们通过<c:out value="${row[]}"/>显示返回的每个数据行 的第一个数据列中的值只要你的数据表中包含的字段你都可以通过改变变量 ${row}中的数字大小来对请求表中的任意一个字段中的值对他们进行访问

是HTML 页脚

在你亲自创建JSTL应用程序过程中可能你还没有发现它有多么的强大但你 应该能够意识到JSTL的功能函数的简单和高效性试想有了JSTL整合出一个基于 SQL的新闻专栏是何等的快速集成你现有的web站点是何等的容易

很好我们的代码很容易理解的即使一个非专业程序员的话打个比方就算 是一个设计师也能够读懂它理解它还可能进行部分的修改起码是页面布局 上的修改

正如我们开始的时候所提到的为了使我们的JSTL代码正常的运行我们需要 安装Mysql Connector/J 中的JAR 文件当然还有 JSTL因为我们使用了Tomcat 这个JSp 容器你需要在Tomcat的文件目录Webapps下创建你自己的文件夹将你 的Hellojsp Continuejsp文件放在你创建的文件目录中在你创建的目录中 你还要创建一个叫做WEBINF 的文件夹将你的配置文件Webxml放在里面 webxml文件如下

<?xml version="" encoding="UTF"?>
<!DOCTYPE webapp
PUBLIC "//Sun Microsystems Inc//DTD Web Application //EN"
">
<webapp />

接下来我们还需要在WEBINF下创建一个叫做lib的子目并将下列文件放进去

jstljar

saxpathjar

standardjar

mysqlconnectorjavastablebinjar (注意这个名称依据你的 Mysql Connector/J版本不同可能会有所变化)

所有的这些信息您能够在JSTL或Tomcat手册中查阅的到如果你想理解他们具 体是如何运行而又为什么这么运行你就应该研读一下这些手册不过为了帮助你 快速的掌握JSTL的基本操作相关的知识我已经作了介绍

如果你使用的是其他的Jsp 容器那么就需要你阅读他们相关的手册资料

罗罗索索这么多我还想再说明一点这篇文章只是对JSTL技术的基本的介绍 并不是完全手册JSTL中包含有许多功能丰富的函数用法来帮助你以简捷快速 的方式完成你的Jsp开发我建议大家读一些有关JSTL功能以及它如何与 JavaBeans协同工作的更详细的文档资料到最终你可能会发现他就是你期待已久 的开发平台通过阅读本篇文章你应该已经能够创建一些简单的基于SQL 数据 库的前后台应用了

               

上一篇:关于jsp页面使用jstl的异常分析

下一篇:JSP生成WORD文档,EXCEL文档,PDF文档