收藏 分销(赏)

第章统一标准标签库.doc

上传人:快乐****生活 文档编号:2803695 上传时间:2024-06-06 格式:DOC 页数:14 大小:131.54KB 下载积分:8 金币
下载 相关 举报
第章统一标准标签库.doc_第1页
第1页 / 共14页
第章统一标准标签库.doc_第2页
第2页 / 共14页


点击查看更多>>
资源描述
《Java Web应用开发》教案 第十一章 JSP原则标签库 -7-17 1. 回顾:[10分钟] 2 2. 课程知识点解说: 2 2.1. JSTL 简介[5分钟] 3 2.2. 核心标签库[20分钟] 3 2.3. 国际化与格式化标签库[30分钟] 5 2.4. SQL 标签库[30分钟] 7 3. 本章总结 [10分钟] 8 4. 考核点 9 5. 扩展某些: 9 6. 学员问题汇总: 9  7. 作业: 9 1. 回顾:[10分钟] 2. 课程知识点解说 1.1 JSTL 简介[5分钟] 核心标签库、国际化(I18N) 与格式化标签库、XML 标签库以及SQL 标签库;JSTL 标签库两种版本;使用JSTL taglib 指令; 1.2 核心标签库[20分钟] <c:set>、<c:remove>;<c:out>;<c:if>;<c:choose>;<c:forEach>;<c:forTokens>;  1.3 国际化与格式化标签库[30分钟] <fmt:setLocale>;<fmt:bundle>;<fmt:setBundle>;<fmt:message>;理解资源文献; 1.4 SQL 标签库[30分钟] <sql:setDataSource>;<sql:query>;<sql:update>;<sql:transaction>;<sql:param>; 3. 本章总结[10分钟] 4. 学员问题汇总 5. 作业   授课教师:谢华军 学时:2小时 l 本章重要目 1、理解核心标签库 2、理解I18N 和格式标签 3、理解SQL 标签库 l 本章重点 理解JSTL 概念和如何使用原则标签库编写JSP 页面 l 本章难点 SQL 标签库 1. 回顾:[10分钟] 提问: 定义简朴标签解决程序文献需要几种环节? 自定义标签是顾客定义 JSP 语言元素 标签解决程序是一种对象,Web 容器调用此对象,以在执行 JSP 页面过程中解释自定义标签 简朴标签解决程序必要实现 Tag 接口 doStartTag() 和 doEndTag() 办法 标签库描述符 (TLD,Tag Library Descriptor) 包括库以及该库中所包括每个标签信息 标签文献,用更简朴方式来自定义标签。 2. 课程知识点解说: 2.1. JSTL 简介[5分钟] 从上节自定义标签作引入:咱们无论做什么系统,在jsp编写中或许会遇到相似或者相似操作,例如对变量输出以及赋值操作,某些条件解决以及对一种集合循环操作,尚有连接查询数据库等通用操作,这些如果用标签实现是不是要每做一种项目都要作一套标签么?如果有现成这种原则库那不就以便多了!答案是必定!下面要讲述就是这种标签库。 JSTL 是什么:Java Server Pages 原则标签库 (JSTL) 包括各种标签可用于 JSP 页面中。 JSP 原则标签库 (JSTL) - 提供两组标签,一组使用 EL(Expression Language,表达式语言),而另一组支持使用祈求时表达式。 为什么要用JSTL:可以编写没有java代码jsp页面。使JSP页面很容易被WEB设计人员理解,表达更清晰。减少程序出错,是程序容易维护。 JSP 原则标签库涉及:核心标签库,I18N与格式化标签库,SQL标签库,XML标签库。 核心标签库:包括各种惯用标签,如通用,迭代,条件等标签。 I18N与格式化标签库:包括国际化标签和格式化标签。 SQL标签库:包括数据库访问和更新标签。 XML标签库:包括对XML操作标签。 2.2. 核心标签库[20分钟] 要使用核心标签库,必要先导入核心标签库URI,语法如下: <%@ taglib uri=”” prefix=”c” %> 1. 通用标签 通用标签库用于操作 JSP 页面内作用域变量。 <c:set>:设立jsp中变量,如果不存在就创立它。 语法:<c:set var=”变量名” value=” 变量值” scope=”作用域范畴”> 作用域范畴,是page,request,session,application中一种,默认是page。 <c:remove>:用于删除创立变量。 语法:<c:set var=”变量名” scope=”作用域范畴”> 作用域范畴,是page,request,session,application中一种,默认是page。 <c:out>:输出表达式值到页面。 语法:<c:out value=”要输出值” escapeXml=”true\false” default=”默认值”> escapeXml,拟定与否将成果中字符(如<,>,&,”,’)转化乘字符实体代码,默以为true。教材192上有个转换表。 示例: <%@ page contentType="text/html;charset=GBK" %> <%@ taglib uri="" prefix="c" %> <html> <head> <title> dtjsp </title> </head> <body bgcolor="#ffffff"> <c:set var="co" scope="page" value="1"/> 输出变量<c:out value="${co}"/> <c:remove var="co" scope=”page” /> 删除后输出变量<c:out value="${co}"/> </body> </html> 2. 条件标签 JSTL 提供条件标签以支持 JSP 页面中各种条件。 <c:if>:用于有条件执行代码。是容器标签。 语法:<c:if test=”条件表达式” var=”变量名” scope=”变量范畴”>内容</c:if> 提示:属性var和scope是可选。 <c:choose>:用于执行条件语句块,类似 Java中switch语句。是容器标签。和<c:when><c:otherwise>一起使用。 语法:<c:choose> <c:when test=”条件1”>内容</c:when> <c:otherwise>内容 </c:otherwise> </c:choose> 3. 迭代标签 迭代标签用于多次计算标签体,循环计算。 <c:forEach>: 语法:<c:forEach var="变量名" items="要遍历对象集合" varStatus=”变量状态” begin=”开始位置” end=”结束位置”>内容</c:forEach> <c:forTokens>:用于遍历用分隔符值集合。 语法:<c:forTokens var="变量名" items="要遍历对象集合" delims=”分隔符” varStatus=”变量状态” >内容</c:forEach> 示例: <%@ page contentType="text/html;charset=GBK" %> <%@ taglib uri="" prefix="c" %> <html> <head> <title> dtjsp </title> </head> <body bgcolor="#ffffff"> <% String[] str = {"hello","haha","hi"}; pageContext.setAttribute("sts",str); %> 用forEach输出数组对象<br> <c:forEach var="va" items="${pageScope.sts}" varStatus="ss"> <c:out value="第${ss.count}个 :${va}"/><br> </c:forEach> <br> <c:set var="co" scope="page" value="1;2:3'45|9.6"/> 用forTokens输出${co}<br> <c:forTokens delims=";:'|." items="${co}" var="so" varStatus="soo"> <c:out value="第${soo.count}个 :${so}"/><br> </c:forTokens> </body> </html> 2.3. 国际化与格式化标签库[30分钟] 什么叫国际化?例如我开发一套系统中华人民共和国人用,英国人也用,就是说规定系统界面要有中文和英文,系统里边日期货币等格式问题也不同,是不是咱们就要做两套系统,起码要做两套jsp呢?如果是,将来系统维护升级一种地方,我就要修改这两套系统代码,麻烦!有无办法把不同语言统一到一种系统里边呢?固然有,咱们下边国际化和格式化标签库就可以很以便解决问题! I18N(在英文中, 国际化(Internationalization)被缩写为I18N, 即只取首尾两个字母, 中间字母为18个) 与格式化标签库可用于创立国际化 Web 应用程序。 它也可用于对通过格式化数字和日期-时间输出成果进行原则化。 I18N 应用程序特点是: 可以在全世界运营;支持多语言;可以迅速本地化。 一方面导入国际化和格式化标签库: <%@ taglib uri="" prefix="fmt" %> 国际化 (I18N) 与格式化标签库中标签有: <fmt:setLocale>:用于重写客户端指定区域设立。这是空标签。 <fmt:bundle>:创立一种I18N本地化上下文,并加载它资源包。容器标签。 <fmt:setBundle>:创立一种I18N本地化上下文,并加载它资源包,存储在范畴变量里。空标签。 <fmt:message>用于给出资源包输出值。 注意:资源文献要保存在/WEB-INF/classes目录下;页面字符集要设立为utf-8。 需要把资源文献本地编码转换为unicode编码,用jdk工具native2ascii。 示例: reg.jsp <%@ page contentType="text/html;charset=utf-8" %> <%@ taglib uri="" prefix="c" %> <%@ taglib uri="" prefix="fmt" %> <c:if test="${param.lang == 'zh_CN' || param.lang == null}"> <fmt:setLocale value="zh_CN" scope="session"/> </c:if> <c:if test="${param.lang == 'en'}"> <fmt:setLocale value="en" scope="session"/> </c:if> <fmt:setBundle basename="reg" scope="session"/> <html> <head> <title> regjsp </title> <style type="text/css"> <!-- .style1 { font-size:36px; font-weight:bold; } --> </style> </head> <body> <p align="center" class="style1"><fmt:message key="title"/></p> <form name="form1" method="post" action="savereg.jsp"> <table width="400" border="1" align="center"> <tr> <td width="178"><div align="right"><fmt:message key="username"/></div></td> <td width="206"><input name="username" type="text" id="username"></td> </tr> <tr> <td><div align="right"><fmt:message key="password"/>&nbsp;</div></td> <td><input name="password" type="text" id="password"></td> </tr> <tr> <td><div align="right"><fmt:message key="email"/>&nbsp;</div></td> <td><input name="email" type="text" id="email"></td> </tr> <tr> <td><div align="center"> <input type="reset" name="Submit" value="<fmt:message key="reset"/>"> </div></td> <td><div align="center"> <input type="submit" name="Submit2" value="<fmt:message key="submit"/>"> </div></td> </tr> </table> </form> <fmt:message key="select_lang"/>:<a href="regjsp.jsp?lang=zh_CN"><fmt:message key="lang1"/></a> <a href="regjsp.jsp?lang=en"><fmt:message key="lang2"/></a> </body> </html> 示例: reg_en. properties title=Register select_lang=Select your perferred language lang1=\u4e2d\u6587 lang2=English username=User Name password=PassWord email=E-mail submit=Submit reset=Reset 示例: reg_zh_CN. properties title=\u6ce8\u518c select_lang=\u9009\u62e9\u60a8\u559c\u6b22\u7684\u8bed\u8a00 lang1=\u4e2d\u6587 lang2=English username=\u7528\u6237\u540d password=\u5bc6\u7801 email=\u90ae\u7bb1 submit=\u63d0\u4ea4 reset=\u91cd\u7f6e 2.4. SQL 标签库[30分钟] SQL 标签库用于从 JSP 页面访问和更新数据库。 SQL 标签库具备如下功能:传递各种数据库查询;访问查询成果;数据库修改;执行各种数据库事务。 导入标签库: <%@ taglib uri="" prefix="sql" %> SQL 标签库中标签有: <sql:setDataSource>用于为数据库设立数据源。空标签。 <sql:query>:查询数据标签。 <sql:update>:更新数据标签,涉及了sql语句里insert,update,delete操作。 <sql:transaction>:事务标签。 <sql:param>:sql参数标签,和<sql:query>或<sql:update>一起使用。 示例: savereg.jsp <%@ page contentType="text/html;charset=GBK" %> <%@ taglib uri="" prefix="c" %> <%@ taglib uri="" prefix="sql" %> <sql:setDataSource url="jdbc:odbc:liu" driver="sun.jdbc.odbc.JdbcOdbcDriver" user="" password="" var="conn" scope="session"/> <sql:update dataSource="${conn}" var="result" scope="page"> <%-- insert into users(username,userpwd,email) values('${param.username}','${param.password}','${param.email}') --%> insert into users(username,userpwd,email) values(?,?,?) <sql:param value="${param.username}"/> <sql:param value="${param.password}"/> <sql:param value="${param.email}"/> </sql:update> <html> <head> <title> savereg </title> </head> <body bgcolor="#ffffff"> <c:if test="${result > 0}"> ${'注册成功'} </c:if> <c:if test="${result <= 0}"> ${'注册失败'} </c:if> </body> </html> 示例: showuser.jsp 显示顾客表里所有顾客。 <%@ page contentType="text/html;charset=GBK" %> <%@ taglib uri="" prefix="c" %> <%@ taglib uri="" prefix="sql" %> <sql:setDataSource url="jdbc:odbc:liu" driver="sun.jdbc.odbc.JdbcOdbcDriver" user="" password="" var="conn" scope="session"/> <sql:query var="user" dataSource="${conn}" scope="page"> select * from users </sql:query> <html> <head> <title> showuser </title> </head> <body bgcolor="#ffffff"> <table border="1"> <tr> <c:forEach var="colname" items="${user.columnNames}"> <th> <c:out value="${colname}"> </c:out> </th> </c:forEach> </tr> <c:forEach var="row" items="${user.rowsByIndex}"> <tr> <c:forEach var="col" items="${row}"> <td><c:out value="${col}"></c:out></td> </c:forEach> </tr> </c:forEach> </table> </body> </html> 3. 本章总结 [10分钟] 五分钟: 让学员提问方式来提出没学懂地方 三分钟: 总结本课堂: JSP标签库是一种通用原则标签库,给咱们提供了诸多通用操作。咱们可以象用普通HTML标签同样来应用它。 注意区别forEach标签和forTokens标签。重点是要纯熟综合应用本标签库对数据库进行操作以及展示数据。 4. 考核点 考核点1:原则标签库构造 考核点2:SQL标签用法 5. 扩展某些: <%@ taglib prefix="c" uri="" %> <%@ taglib prefix="sql" uri="" %> <html> <head> <title>所有客户</title> </head> <body bgcolor="white"> <c:set var="noOfRows" value="2" /> <sql:setDataSource driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver" url = "jdbc:microsoft:sqlserver://accp:1433;DataBaseName=pubs;" user="sa" password="sa" var="conn"/> <c:if test="${custList == null}"> <sql:query var="custList" scope="session" sql="SELECT * FROM Customers ORDER BY LastName" dataSource="${conn}"/> </c:if> <c:choose> <c:when test="${custList.rowCount == 0}"> 此处不再有其她客户... </c:when> <c:otherwise> <b>如下是客户列表:</b> <p> <table border="1"> <th>姓氏</th> <th>名字</th> <th>年龄</th> <c:forEach items="${custList.rows}" var="row" begin="${param.start}" end="${param.start + noOfRows - 1}"> <tr> <td><c:out value="${row.LastName}" /></td> <td><c:out value="${row.FirstName}" /></td> <td><c:out value="${row.Age}" /></td> </tr> </c:forEach> </table> </c:otherwise> </c:choose> <p> <c:choose> <c:when test="${param.start > 0}"> <a href="foreachexample.jsp?start=<c:out value="${param.start - noOfRows}" />"> 上一页</a> </c:when> <c:otherwise> 上一页 </c:otherwise> </c:choose> <c:choose> <c:when test="${param.start + noOfRows < custList.rowCount}"> <a href="foreachexample.jsp?start=<c:out value="${param.start + noOfRows}" />"> 下一页</a> </c:when> <c:otherwise> 下一页 </c:otherwise> </c:choose> </body> 6. </html>学员问题汇总: 学员问题1: 为什么使用forTokens? 答:forTokens用于对整个由分隔符分隔集合对象重复执行嵌套标签体内容,它是一种迭代标签。 学员问题2: <when>和<otherwise>之间有什么区别? 答:<when>动作指定测试条件。如果条件值为true,则会解决<when>标签体中内容;如果条件值为false,则会解决<otherwise>标签体中内容。在一种<choose>动作中可以有各种<when>,但只能有一种<otherwise> 学员问题3: SQL标签库中哪个动作用于从JSP页面将数据插入数据库? 答:<update>动作用于从JSP页面插入、删除或是更新数据库中数据。 7. 作业: · 习题1:编写一种程序,使用forEach标签在JSP页面中显示产品名称和成本。 · 习题2:编写一种程序,使用国际化标签分别显示美国和中华人民共和国样式日期和数字。(提示:formantDate和formatNumber标签)
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 品牌综合 > 行业标准/行业规范

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服