问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2023-03-04 15:58

我来回答

1个回答

热心网友 时间:2023-05-02 12:21

  JSTL是一个已经被标准化的标记库集合 她支持迭代 条件 XML文档的解析 国际化 和利用SQL与数据库交互的功能 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请求

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

   : <! Hello jsp >

   : <>

   : <head>

   : <title>Hello</title>

   : </head>

   : <body bgcolor="#ffffff">

   : <h >Please enter all necessary information and click OK </h >

   : <form method="post" action="Continue jsp">

   : <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>

   : </>

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

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

   : <! Continue jsp >

   : <%@ taglib prefix="c" uri="%>

   : <@ taglib prefix="sql" uri="%>

   : <c:set var="h" value="localhost"/>

   : <c:set var="l" value="${param login}"/>

   : <c:set var="p" value="${param password}"/>

   : <c:set var="d" value="${param database}"/>

   : <c:set var="t" value="${param table}"/>

   : <>

   : <head>

   : <title>Continue</title>

   : </head>

   : <body bgcolor="#ffffff">

   : <sql:setDataSource driver=" mysql jdbc Driver"

  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="${result rowsByIndex}">

   : <c:out value="${row[ ]}"/><br>

   : </c:forEach>

   : </body>

   : </>

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

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

  行 是 HTML 的注释说明

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

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

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

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

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

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

  行 是HTML 页脚

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

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

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

  <?xml version=" " encoding="UTF "?>

  <!DOCTYPE web app

  PUBLIC " //Sun Microsystems Inc //DTD Web Application //EN"

  ">

  <web app />

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

  jstl jar

  saxpath jar

  standard jar

lishixin/Article/program/Java/JSP/201311/20216

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 锻炼颈椎的几个动作 水多久能结冰 冰能在多长时间内形成 请问水低于0度会结冰吗? 如何防止脱发严重 开通银行短信通知的金额范围最大填什么 在日本欠钱己被起诉,到法庭,把钱还上了,会坐牢吗? 高地欠钱被起诉会被限制出境吗 欠款人跑到国外怎么办 青岛失业金可以领几个月 2022年重庆职工社保档次标准 济南失业金领取条件及标准2023 5%存款准备金率有哪些银行 一批货走海运或空运的运保费是否一样?最低保费是多少? 怎么选择二次赔付重疾险 大病保险中的“二次赔付”或“多次赔付”是什么... 农村商业银行存折转到卡要钱吗? 许常德是常德的? 对方欠我十七万,如果告上法庭他会负刑事责任吗,如果负的话,那欠款怎么... 常德市局长祖籍 平安保险事故怎么不显示我的车辆 美国诈骗多少钱立案 车均保费降低了,赔付率影响多少? 2020年燃油车均保费是多少钱一年 泉州职工医保报销比例 农村信用社的银行卡有16个数字(信用卡也有16个数字)但写着借记卡什么... 滚油烫到手机屏幕会怎么样? 信用卡转到银行卡里的钱为啥从银行卡里转不出来 什么是双阶乘,什么是阶乘? 三者险200万保费补牙全报销吗 意外事故导致三者牙齿损坏,治疗费算直接财产损失吗 交通事故补十一颗牙保险能否报销 牙齿保险赔偿比例多少? 交通事故一颗牙最多赔偿多少 请问支付宝添加银行卡是指借记卡吗? 青海失业金领取条件及标准 2022年青海失业人员怎样申领补助金? 北京万达嘉华国际酒店有几个 失业保险金能领取24个月怎么领?失业保险金领取条件有哪些? 青海疫情补助金领取条件及标准2022 广州东站附近哪个酒店有服务 2022年青海养老保险金领取计算方法与公式、缴费基数、比例 青海失业保险金领取条件 外地户口失业后自己交社保怎么交呢 异地户口失业后自己缴纳社保 曲靖市办证契税怎么交