使用jstl和el标签简化jsp视图授课素材库_第1页
使用jstl和el标签简化jsp视图授课素材库_第2页
使用jstl和el标签简化jsp视图授课素材库_第3页
使用jstl和el标签简化jsp视图授课素材库_第4页
使用jstl和el标签简化jsp视图授课素材库_第5页
已阅读5页,还剩16页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JSPJSTLJavaServerPagesStandardTagLibraryJSP已经变得非常流行,但JSTL在基于SQL数据库的简单、快速的前开发中还是没有被广泛的应用。JSTL主要包括四个基本部分的标记库:Core、XML、国际化和对SQL的支持。篇幅有限,只介绍Core和SQL库的一些基本功JSPJSP的容器,这里我们使用免费的JSP容器:TOMCAT。只需再安装JSTL运行所需文用程序的WEB-INF/lib下即可.整个实例程序代码包括两个文件o.jsp和o.jsp文件允许你输入数据库名称、登录名称、登录、数据库表名。Continue.jsp:接受o.jsp中的数据信息并且连接数据库,并对数据库中的表执行一个Select请求.1:<!--o.jsp--2:3:4:<title>5:6:<body7:<h1>Please,enterallnecessaryinformationandclickOK.</h1>8:<formmethod="post"action="Continue.jsp">9:<br>Yourloginto<inputtype="text"name="login"size="15">10:<br>Yourpasswordtodatabase:<inputtype="password"name="password"size="15">11:<br>Yourdatabasename:<inputtype="text"name="database"size="15">12:<br>Yourdatabasetable:<inputtype="text"name="table"13:<br><br><inputtype="submit"name="submit"value="OK">14:</form>15:16:上面就是所有o.jsp的源代码,仅仅是纯粹的HTML代码,就这么简Continue.jsp的全部代码。1:<!--Continue.jsp--2:<%@taglibprefix="c" /jstl/core"3:<%@taglibprefix="sql"uri="h /jstl/sql"%>4:<c:setvar="h"value="localhost"/>5:<c:setvar="l"6:<c:setvar="p"value="${param.password}"/>7:<c:setvar="d"value="${param.database}"/>8:<c:setvar="t"value="${param.table}"/>9:10:11:12:13:<body14:<sql:setDataSourcedriver="com.mysql.jdbc.Driver"15:<sql:queryvar="result">16:SELECT*FROM<c:outvalue="${t}"/>17:</sql:query>18:<c:forEachvar="row"items="${result.rowsByIndex}">19:<c:outvalue="${row[0]}"/><br>20:21:22:行2--3这些JSP是为了 外部的库,更确切的说这里是引用了JSTL库中的Core和SQL 行48正如o.jsp真正运行的样子,他将请求continue.jsp,Continue.jsp获得请求后就需要得到并解析来自o.jsp的若干变量,我们使用了这样的方式${param.YOUR_VAR}。在第4行<c:set,将变量${h}设置为"localhost",第五行变量${l}将获取我们在 o.jsp中的login文本域中输入的信息,第6,7,8行的变量将分别获得来自 o.jsp中用户所输入的密14,我们试图用我们先前获得的mysql驱动程序(com.mysql.jdbc.Driver)URL中,我们指明数据库连接所JDBC驱动程序连接其相对的数据库。如果我们需要连接其他的SQL数据库,只需更改这个URL就够了。15--17这里我们执行了一个Select16行,我们JSTL功能函数<c:out用来输出我们所获取的数据表名称,这里我们同样可以使用其他的SQLINSERT,DELETE,等等。要执行这些没有返回值的查询请求,你就需要使用<sql:updateJSTL功能函数了。他可以直接执行,他们就像<SQL:query一样,只是执行它,不需要特别指定结18--20既然我们执行了上面的SELECT查询语句,我们就应该把他的返回结果显示出来。<c:forEachJSTL中一个具有迭代功能的函数,执行${row},19行,我们通过<c:outvalue="${row[0]}"/>显示返回的每${row}中的数字大小来对请求表中的任意一个字段中的值对他们进为了使我们的JSTL代码正常的运行,我们需要安装MysqlConnector/J中的JAR文件,当然还有JSTL。因为我们使用了Tomcat这个JSP容器,你需要在Tomcat的文件 Webapps下创建你自己的文件夹,将你的o.jsp、Continue.jsp文件放在你创建的文件 还要创建一个叫做WEB-INF的文件夹,将你的配置文件web.xml放在里面,web.xml文件如下:<?xmlversion="1.0"encoding="UTF-<!DOCTYPEweb-PUBLIC"-//SunMicrosystems,Inc.//DTDWebApplication2.3//EN" <web-app接下来我们还需要在WEB-INFlib的子目,并将下列文件mysql-connector-java-3.0.9-stable-bin.jar注意,这个名称依据你的MysqlConnector/J版本不同可能会有所变化)JSTL详先来搭建下环境,jstl的包当然是不能少的。其次,必须的库或者是java的库文件。然后将库放到WEB-INF下或则将java的库文件(*.jar)WEB-INF\lib下。一般用途在JSTL中,一般用途的主要是指具有输出,设置变量,和错误处理等功能的标签,他们在jsp它是一个输出的,负责把计算出的结果输出到jspwriter,就跟调用out.println()基本一BODY<c:outvalue=”value”[escapeXml]=”{true|false}”[default=”defaultValue”]/>BODY<c:outvalue=”value”[escapeXml]=”{true|falsefalse<%@taglibprefix="c" /jsp/jstl/core"<%@pagecontentType="text/html;charset=gb2312"language="java"<title>JSTL:c:out<body<c:setvar="sessionAttr"value="sessionValue"<c:setvar="pageAttr"value="pageValue"<c:setvar="requestAttr"value="requestValue"<c:outvalue="以下输出的是前面设置的属性<br<c:out<c:out<c:out<c:outvalue="${test_nodefdefault=test_nodef<c:setvalue=”value”var=”varName”[scope=“{page|request|session|application}”]/><c:setvalue=”value”var=”varName”[scope=“{page|request|session|application}”]>Body<c:setvalue=”value”target=”target”property=”propertyName”/4<c:setvalue=”value”target=”target”property=”propertyName”Body举例<%@taglibprefix="c" /jsp/jstl/core"<%@pagecontentType="text/html;charset=gb2312"language="java"<jsp:useBeanid="user"<body<c:setvar="maxCount"<c:out<c:setvar="password"><c:out<c:setvalue="king"target="${user}"property="userName"/>userName=<c:outvalue="${user.userName}"/><c:setvalue="20"var="maxIdelTime"<c:setvalue="next.jsp"var="nextPage"法是:<c:removevar=”varName”[scopepage|request|session|application<%@taglibprefix="c" /jsp/jstl/core"<%@pagecontentType="text/html;charset=gb2312"language="java"<body<c:setvalue="10000"var="maxUser"<c:setvalue="10"var="count"scope="session"/>maxUser=<c:outvalue="${maxUser}"/><br>count=<c:outvalue="${count}"/><hr><c:removevar="maxUser"<c:removec:removemaxUser=<c:outvalue="${maxUser}"/>,count=<c:outvalue="${count}"/>,是:<c:catch[var=”varName”]>nestedactions</c:catch>举例<%@taglibprefix="c" /jsp/jstl/core"<%@pagecontentType="text/html;charset=gb2312"language="java"<body<c:catch<c:out<hr><c:out<hr><c:outJSTL详解(三<c:if>;jsp%if(boolean){}%><c:iftest=”testConditionvar=”varName”2body<c:iftest=”testCondition”var=”varName”Body举例<%@taglibprefix="c" /jsp/jstl/core"<%@pagecontentType="text/html;charset=gb2312"language="java"<body<c:setvar="count"<c:iftest="${count>78}"> <c:choose>;它是用于条件选择,和<c:when>,<c:otherwise>一起使用,它的条件选择jsp<%switch(i){case0:…case1:…default:}%>,也可以完成<%if{}…elseif{}….elseif{}else{}%>的功能Body注意:它的body 0个或多个<c:when>子,<c:when>必须在<c:otherwise>子之前0<c:otherwise<c:when><c:choose>的一个分支<c:whenBody <c:otherwise>他代表了<c:choosejsp<%switch(i){case0:case1:…default:}%>中的defaultConditional<%@taglibprefix="c" /jsp/jstl/core"<%@pagecontentType="text/html;charset=gb2312"language="java"<c:setvar="count"<body<c:whentest="${count<font<c:when<font<fontcount:<c:outJSTL详解(四)如果使用scriptlets,那么,我们经常使用Itor或者Enumeration来进行迭Itorit=collection.iSomeBeansomeBean=(SomeBean)it.next();}面的一次中,我们开发过一个迭代,JSTL中也提供了对迭代进行支持 ,并且,他的功能比上一章的强大的多。JSTL中的迭代有两个: 1、<c:forTokens>TokenString的迭代,可以指定一个或者是多个分for(inti=j;i<k;i++)下面我来详细介绍。(注意,“[]”里面的是可选条件语法:aCollection<c:forEach[var=”varName”]items=”collection”[varStatus=”varStatusName”][begin=”beginend=”end[step=”step”]>Body内容b<c:forEach[var=”varName”][varStatus=”varStatusName”]begin=”begin”end=”end”[step=”step”]>Body举例:c_forEach1.jsp(在Collection中迭代<%@taglibprefix="c" /jsp/jstl/core"<%@pagecontentType="text/html;charset=gb2312"language="java"<%@pageCollectionusers_c=newArrayList();for(inti=0;i<3;i++){Useruser=newUser();}<title>JSTL:c:forEach的使用之一<body<h4>collection中的元素。<table<c:forEachvar="users"<td><c:out<td><c:out举例:c_forEach2.jsp(迭代固定的次数<%@taglibprefix="c" /jsp/jstl/core"<%@pagecontentType="text/html;charset=gb2312"language="java"<body<h4>第二种迭代<c:forEachvar="count"begin="50"<c:outvalue="${count}"/><h4>第二种迭代:10to<c:forEachvar="count"begin="10"end="100"<c:outJSTL详解(五首先,感谢大家的关注,下面我来继续讲解:URL相关的,他们的作用主要是负责页作用:导入一个url的资源,相当于jsp中的<jsp:includepage=”path”>,同样也可<c:importurl=”url”[var=”varName”][scope=”{page|request|session|application}”]Optionalbodycontentfor<c:param><c:importurl=”url”[context=”context”]BodycontentwherevarReaderisconsumedbyanother举例<%@taglibprefix="c" /jsp/jstl/core"<%@pagecontentType="text/html;charset=gb2312"language="java"<body<h3><c:importurl="<c:importurl="footer.jsp"<c:paramname="userName"value="jsprequest.sendRedirect(“other.jspservlet<c:redirecturl=”value”bbody,body<c:redirecturl=”value”<c:param>举例<%@taglibprefix="c" /jsp/jstl/core"<%@pagecontentType="text/html;charset=gb2312"language="java"<body<c:urlvalue="footer.jsp"var="nextpage"><c:paramname="userName"<c:redirectURLURL语法:abody<c:urlvalue=”value”[var=”varName”]bbodybody<c:urlvalue=”value”[var=”varName”]<c:param>举例<%@taglibprefix="c" /jsp/jstl/core"<%@pagecontentType="text/html;charset=gb2312"language="java"<title>JSTLc:url<body<c:urlvar="footer"value="footer.jsp"<c:paramname="id"value="<c:out<c:url<c:paramname=”name”bbody<c:paramname=”name”>举例<%@taglibprefix="c" /jstl/core"<%@pagecontentType="text/html;charset=gb2312"language="java"<title>JSTLc:param<body<c:redirect<c:paramname="userName">JSTL详解(六

今天,我来讲解下一些很重要的jstl,如果运用得当,可以大大的简化数据库的操作,减少代码量。首先sql可以实现包括查询、更新、事务处理和设置数据源等强大的语法:<sql:setDataSourcescopepage、application、sessionwebjndi(这个就不要我多讲了吧,呵呵),第二种是指定所有的连接属{dataSource=”dataSourceName”| <%@taglibprefix="c" /jstl/core"<%@taglibprefix="sql" /jstl/sql"<%@pagecontentType="text/html;charset=gb2312"language="java"<body语法:abody<sql:queryVar=”varName”[scope=”{page|session|request|application}”][startRow=”startRow”]/>bbodybody<sql:queryVar=”varName”[scope=”{page|session|request|application}”][startRow=”startRow”]><sql:param>cbody,并且可以指定可选的参数(sql:param<sql:queryVar=”varName”[scope=”{page|session|request|application}”][startRow=”startRow”]>optional<sql:param>举例<%@taglibprefix="c" /jsp/jstl/core"<%@taglibprefix="sql" /jsp/jstl/sql"<%@pagecontentType="text/html;charset=gb2312"language="java"<body<sql:queryvar="query"dataSource="${ds2}">SELECT*FROMsql_test<table<c:forEachvar="row"<td>Name:<c:out<td>:<c:out2<sql:queryvar="query2"sql="SELECT*FROMsql_testwhereid=?"<sql:param<table<c:forEachvar="row"<td>Name:<c:out<td>:<c:outJSTL(七SQL相关的(二作用:主要是执行插入、更新和删除操作的。另外,还有一些没有返回结果集的sql操作createtabletableName(idint….);droptabletableNamegrant 语法:a、没有body<sql:updatesql=”sqlUpdate”b、有body,并且在body中指定参数<sql:update<sql:param>c、有body,在body中指定sql<sql:updatesql=”sqlUpdate”[scope=”{page|session|request|application}”]>Updatestatement<sql:param><%@taglibprefix="c" <%@taglibprefix="sql" <sql:updatevar="update1"dataSource="${ds2}">updatesql_te

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论