- 浏览: 107583 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wxynxyo:
非常感谢,解决了一个问题
Spring MVC 类型转换 @InitBinder使用 转 -
hxsmile:
很清晰明了
MyEclipse下XFire开发Webservice实例 -
yaoyy:
...
MyEclipse下XFire开发Webservice实例 -
hyl523:
好,明白了,多谢!
MyEclipse下XFire开发Webservice实例
JAVA标签库JSTL-EL表达式介绍使用配置手册
JSP 标准标记库(JSP Standard Tag Library,JSTL)是一个实现 Web 应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。
JSTL是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。但是在即将推出的JSP 2.0中是作为标准支持的。JSTL目前的最新版本为1.02,最终发布版为1.0。JSTL包含两个部分:标签库和EL(Expression Language表达式语言)语言。标签库目前支持四种标签:
标签 | URI | 前缀 | 示例 |
Core | http://java.sun.com/jstl/core | c | <c:tagname ...> |
XML processing | http://java.sun.com/jstl/xml | x | <x:tagname ...> |
I18N capable formatting | http://java.sun.com/jstl/fmt | fmt | <fmt:tagname ...> |
Database access (SQL) | http://java.sun.com/jstl/sql | sql | <sql:tagname ...> |
Core支持JSP中的一些基本的操作;
XML processing支持XML文档的处理;
I18N capable formatting支持对JSP页面的国际化;
Database access (SQL)支持JSP对数据库的操作。
版本
要注意1.0.x和1.1.x两个版本,目前最新版分别为1.0.6和1.1.2
1.1版比1.0版多了fn标签库(常用的字符串操作在里面,特别是length、substring、等用于显示的函数)
各个版本都可以在apache网站下载得到
使用中注意的问题
在仅支持JSP1.2规范的容器中,只能使用jstl 1.0版,所以fn就不能用了,很不爽。${1 + 2}必面都要写在<c:out value='${1 + 2}' />里。在支持JSP2.0规范的容器中,可以直接使用el表达式。
一些BUG
在websphere 6.0(6.0.2.13版以前)中,有fn:length函数的BUG。只有打补丁了。
在websphere 中,如<c:out value='${var ==0 ? "非" : "是"}' />这样的句子会出问题,tomcat下刚运行很好。应该是:jstl只是一个规范,各个web容器对其实现不同的原因吧。
一 JSTL使用配置总结
1.web.xml版本为2.3版本的配置
引用文档:http://blog.csdn.net/tiancaoyan/archive/2009/06/10/4256637.aspx
使用环境: WebLogic92 + JDK1.5,web.xml版本为2.3,文件是如下表示:
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
使用步骤:
l拷贝jstl.jar,standard.jar文件到Web-INF/lib目录下
l在引用JSP页面加上: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
l如web.xml版本为2.3,还要在加上: <%@ page isELIgnored="false"%>
2 web.xml版本为2.4的配置
<web-appversion="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
l拷贝jstl.jar,standard.jar文件到Web-INF/lib目录下
l在引用JSP页面加上: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
3 web.xml版本为2.5的配置
在J2EE5.0中已经将JSTL纳入标准规范,将jstl.jar,standard.jar二个jar文件合并为jstl1.2.jar.
<web-appversion="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
l在引用JSP页面加上: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
以上的web.xml各个版本在Tomcat6.0.24下也能正常显示.
二 JSTL使用示例
JSTL获取值范围.
引用文档:http://blog.csdn.net/tiancaoyan/archive/2009/06/10/4256637.aspx
一个EL表达式包含变量和操作符。任何存储在某个JSP作用范围(如:page、 request、session、application)的bean能被作为一个EL变量来使用。另外,EL支持以下预定义的变量:
变量名称
|
说明 |
pageScope |
一个包含所有page scope范围的变量集合 (a java.util.Map)
|
requestScope
|
一个包含所有request scope范围的变量集合 (a java.util.Map)
|
sessionScope
|
一个包含所有session scope范围的变量集合 (a java.util.Map)
|
applicationScope
|
一个包含所有application scope范围的变量集合 (a java.util.Map) |
param
|
一个包含所有请求参数的集合 (a java.util.Map),通过每个参数对应一个String值的方式赋值
|
paramValues
|
一个包含所有请求参数的集合 (a java.util.Map),通过每个参数对应一个String数组的方式赋值
|
header
|
一个包含所有请求的头信息的集合, (a java.util.Map) ,通过每个头信息对应一个String值的方式赋值
|
headerValues
|
一个包含所有请求的头信息的集合 (a java.util.Map),通过每个头信息的值都保存在一个String数组的方式赋值
|
cookie
|
一个包含所有请求的 cookie集合 (a java.util.Map), 通过每一个cookie(javax.servlet.http.Cookie)对应一个cookie值的方式赋值
|
initParam
|
一个包含所有应用程序初始化参数的集合(a java.util.Map),通过每个参数分别对应一个String值的方式赋值
|
pageContext
|
一个javax.servlet.jsp.PageContext类的实例,用来提供访问不同的请求数据
|
操作符描述了你对变量所期望的操作。如果你之前曾经使用过任何编程语言的话,在EL表达式中所使用的操作符对你来说可能看起来很熟悉。因为它们和那些在大多数语言中所支持的操作符一样。
.
访问一个bean属性或者 Map entry
[]
访问一个数组或者链表元素
()
对子表达式分组,用来改变赋值顺序
? :
条件语句,比如:条件 ? ifTrue : ifFalse.如果条件为真,表达式值为前者,反之为后者
+
数学运算符,加操作
-
数学运算符,减操作或者对一个值取反
*
数学运算符,乘操作
/ or div
数学运算符,除操作
% or mod
数学运算符,模操作(取余)
== or eq
逻辑运算符,判断符号左右两端是否相等,如果相等返回true,否则返回false
!= or ne
逻辑运算符,判断符号左右两端是否不相等,如果不相等返回true,否则返回false
< or lt
逻辑运算符,判断符号左边是否小于右边,如果小于返回true,否则返回false
> or gt
逻辑运算符,判断符号左边是否大于右边,如果大于返回true,否则返回false
<= or le
逻辑运算符,判断符号左边是否小于或者等于右边,如果小于或者等于返回true,否则返回false
>= or ge
逻辑运算符,判断符号左边是否大于或者等于右边,如果大于或者等于返回true,否则返回false
&& or and
逻辑运算符,与操作赋。如果左右两边同为true返回true,否则返回false
|| or or
逻辑运算符,或操作赋。如果左右两边有任何一边为true返回true,否则返回false
! or not
逻辑运算符,非操作赋。如果对true取运算返回false,否则返回true
empty
用来对一个空变量值进行判断: null、一个空String、空数组、空Map、没有条目的Collection集合
func(args)
调用方法, func是方法名,args是参数,可以没有,或者有一个、多个参数.参数间用逗号隔开
一个EL表达式可以包含:数字、文本(在单引号或者双引号之间)、布尔值、null值。
1获取单个对象
<%request.setAttribute(“username”,”david”)%>
${requestScope.userName}
2遍历Map类型
<%
Hashtable hashtable1 = new Hashtable();
hashtable1.put(new Integer(1),"uno");
hashtable1.put(new Integer(2),"dos");
hashtable1.put(new Integer(3),"tres");
request.setAttribute("numberMap", hashtable1);
//JSTL最好指定范围访问值:
// ${sessionScope.numberMap2},${applicationScope.numberMap2}.
request.getSession().setAttribute("numberMap2",hashtable1);request.getSession()
.getServletContext().setAttribute("numberMap3",hashtable1);
%>
<c:forEachvar="month"items="${numberMap}">
<li>
${month.key},${month.value}
</li>
</c:forEach>
各JSTL相关引用标记
<%@tagliburi="http://java.sun.com/jsp/jstl/core"prefix="c"%>
<%@tagliburi="http://java.sun.com/jsp/jstl/xml"prefix="x"%>
<%@tagliburi="http://java.sun.com/jsp/jstl/fmt"prefix="f"%>
<%@tagliburi="http://java.sun.com/jsp/jstl/sql"prefix="sql"%>
<%@tagliburi="http://java.sun.com/jsp/jstl/functions"prefix="fn"%>
下面介绍一下web.xml的配置
<?xmlversion="1.0"encoding="UTF-8"?>
<web-appversion="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<jsp-config>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/tlds/fmt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/fmt-rt</taglib-uri>
<taglib-location>/WEB-INF/tlds/fmt-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/tlds/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/core-rt</taglib-uri>
<taglib-location>/WEB-INF/tlds/c-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql</taglib-uri>
<taglib-location>/WEB-INF/tlds/sql.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/sql-rt</taglib-uri>
<taglib-location>/WEB-INF/tlds/sql-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x</taglib-uri>
<taglib-location>/WEB-INF/tlds/x.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jstl/x-rt</taglib-uri>
<taglib-location>/WEB-INF/tlds/x-rt.tld</taglib-location>
</taglib>
</jsp-config>
</web-app>
JSTL语法及参数详解
JSTL语法及参数
JSTL包含以下的标签:
常用的标签:如<c:out>、<c:remove>、<c:catch>、<c:set>等
条件标签:如<c:if><c:when>、<c:choose>、<c:otherwise>等
URL标签:如<c:import>、<c:redirect>和<c:url>等
XML标签:如<xml:out>等
国际化输出标签:如<fmt:timeZone>等
SQL标签:如<sql:query>、<sql:update>、<sql:transaction>等
一般用途的标签:
1.<c:out>
没有Body时的语法
<c:out value=”value” [escapeXml=”{true|false}”] [default=”defaultValue”]/>
有Body时的语法
<c:out value=”value” [escapeXml=”{true|false}”]>
这里是Body部分
</c:out>
名字 类型 描述
value Object 将要输出的表达式
escapeXml boolean 确定以下字符:<,>,&,’,”在字符串中是否被除数,默认为true
default Object 如果vaule计算后的结果是null,那么输出这个默认值
2.<c:set>
这个标签用于在某个范围(page、request、session、application等)中使用某个名字设定特定的值,或者设定某个已经存在的javabean对象的属性。他类似于<%request.setAttrbute(“name”,”value”);%>
语法1:使用value属性设定一个特定范围中的属性。
<c:set value=”value” var=”varName” [scope=”{page|request|session|application}”]/>
语法2:使用value属性设定一个特定范围中的属性,并带有一个Body。
<c:set var=”varName” [scope=”{page|request|session|application}”]>
Body部分
</c:set>
语法3:设置某个特定对象的一个属性。
<c:set value=”value” target=”target” property=”propertyName”/>
语法4:设置某个特定对象的一个属性,并带有一个Body。
<c:set target=”target” property=”propertyName”>
Body部分
</c:set>
名字 类型 描述
value Object 将要计算的表到式。
var String 用于表示value 值的属性,如果要在其他标签中使用,就是通过这 个var指定的值来进行的。它相当于在标签定义了一个变量,并且这个变量只能在标签中的一个。
scope String var的有效范围,可以是page|request|session|application中的一个
target String 将要设置属性的对象,它必须是javabean或则java.util.Map对象
property Object 待设定的Target对象中的属性名字,比如在javabean中有个name属性,提供了setUserId方法,那么这里填userId。
3.<c:remove>
<c:remove var=”varName” [scope=”{page|request|session|application}”]/>
4.<c:catch>
这个标签相当于捕获在它里边的标签抛出的异常对象
<c:catch [var=”varName”]> //var是异常的名字
内容
</c:catch>
条件标签
1. <c:if>
语法1:无Body情况
<c:if test=”testCondition” var=”varName” [scope=”page|request|session|application”]/>
语法2:有Body的情况
<c:if test=”testCondition” var=”varName” [scope=”page|request|session|application”]>
Body内容
</c:if>
名字 类型 描述
test Boolean 表达式的条件,相当于if()中的条件判断语句。
var String 表示这个语句的名字。
scope String var这个变量的作用范围。
2.<c:choose>
语法:<c:choose>
Body内容(<c:when>和<c:otherwise>子标签)
</c:choose>
注意:它的Body只能由以下元素组成:
1) 空格
2) 0或多个<c:when>子标签,<c:when>必须在<c:otherwise>标签之前出现.
3) 0个或多个<c:otherwise>子标签。
3.<c:when>
代表的是<c:choose>的一个条件分支,只能在<c:choose>中使用
语法:<c:when test=”testCondition”> //test是boolean类型,用于判断条件真假
Body语句
</c:when>
4.<c:otherwise>
代表的是<c:choose>中的最后选择。必须在最后出现
<c:otherwise>
内容
</c:otherwise>
迭代标签
1.<c:forEach>
语法1:在Collection中迭代
<c:forEach[var=”varName”] items=”collection” [varStatus=”varStatusName”]
[begin=”begin”] [end=”end”] [step=”step”]
Body内容
</c:foeEach>
语法2:迭代固定的次数.
<c:forEach [var=”varName”] [varStatus=”varStatusName”]
[begin=”begin”] [end=”end”] [step=”step”]
Body内容
</c:foeEach>
名字 类型 描述
var String 迭代的参数,它是标签参数,在其他标签中通过它来引用这个标签中的内容。
Items Collection、ArrayList、 要迭代的items集合.
Iterator、Map、String、
Eunmeration等
VarStatus String 表示迭代的状态,可以访问迭代自身的信息
Begin int 表示开始迭代的位置。
End int 表示结束迭代的位置。
Step int 表示迭代移动的步长,默认为1。
URL相关的标签
1.<c:import>
语法1:资源的内容使用String对象向外暴露
<c:import url=”url” [context=”context”]
[var=”varName”] [scope=”{page|request|session|application}”] [charEncoding=”charEncoding”]>
内容
</c:import>
语法2:资源的内容使用Reader对象向外暴露。
<c:import url=”url” [context=”context”]
varReader=”varReaderName” [charEncoding=”charEncoding”]>
内容
</c:import>
名字 类型 描述
url String 待导入资源的URL,可以是相对路径和绝对路径,并且可以导入其他主机资源
context String 当使用相对路径访问外部context资源时,context指定了这个资源的名字。
var String 参数的名字。
scope String var参数的作用范围。
cahrEncoding String 输入资源的字符编码。
varReader String 这个参数的类型是Reader,用于读取资源。
2.<c:redirct>
语法1:没有Body的情况.
<c:redirect url=”value” [context=”context”]/>
语法2:有Body情况下,在Body中指定查询的参数
<c:redirect url=”value” [context=”context”]>
<c:param name=”name” value=”value”/>
</c:redirect>
3.<c:url>
语法1:没有Body
<c:url value=”value” [context=”context”] [var=”varName”] [scope=”{page|request|session+application}”]/>
语法2:有Body
<c:url value=”value” [context=”context”] [var=”varName”] [scope=”{page|request|session+application}”]>
<c:param name=”name” value=”value”/>
</c:url>
名字 类型 描述
value String URL值
context String 当使用相对路径访问外部context资源时,context指定了这个资源的名字
var String 标识这个URL标量。
Scope String 变量作用范围。
SQL相关的标签
1.<sql:setDataSource>
2.<sql:query>
3.<sql:update>
4.<transaction>
5.<param>
jstl之foreach循环举例:
<%@pagecontentType="text/html;charset=GBK"%><%@pageimport="java.util.*"%>
<%@tagliburi="http://java.sun.com/jstl/core"prefix="c"%>
<html>
<head>
<title>JSTL测试1--c:forEach循环</title>
</head>
<body>
一、整数
<c:forEachvar="i"begin="1"end="10"step="1">
<c:outvalue="${i}"/>,
</c:forEach><p>
二、计算x的平方
<table>
<tr><th>Value</th>
<th>Square</th></tr>
<c:forEachvar="x"begin="0"end="10"step="2">
<tr><td><c:outvalue="${x}"/></td>
<td><c:outvalue="${x*x}"/></td></tr>
</c:forEach>
</table><p>
三、字符串"47,52,53,55,46,22,16,2"分隔.
<tableborder="1">
<c:forTokensitems="47,52,53,55,46,22,16,2"delims=","var="dailyPrice">
<tr><td><c:outvalue="${dailyPrice}"/></td></tr>
</c:forTokens>
</table><p>
四、使用步长
<table>
<tr><th>second</th>
<th>second</th></tr>
<c:forEachvar="seconds"begin="0"end="${pageContext.session
.maxInactiveInterval}"step="60">
<tr><td><c:outvalue="${seconds}"/></td>
<td><c:outvalue="${seconds}"/></td></tr>
</c:forEach>
</table><p>
五、对数组进行循环<p>
<%intai[]={10,20,30,40,50};
pageContext.setAttribute("ary",ai);
%>
<c:forEachvar="i"items="${ary}">
<c:outvalue="${i}"/>*
</c:forEach><p>
<%
Cookiec=newCookie("cookie1","one");
response.addCookie(c);
%>
<%
Cookiecookies[]=request.getCookies();
CookiesCookie=null;
Stringsname=null;
Stringname=null;
if(cookies==null)//如果没有任何cookie
out.print("noneanycookie");
else
{
//out.print(cookies.length+"<br>");
for(inti=0;i<cookies.length;i++)//循环列出所有可用的Cookie
{
sCookie=cookies[i];
sname=sCookie.getName();
name=sCookie.getValue();
out.println(sname+"->"+name+"<br>");
}
}
%>
<tableborder="1"align="center">
<tr><th>CookieName</th>
<th>CookieValue</th></tr>
<c:forEachvar="cook"items="${pageContext.request.cookies}">
<tr><td><c:outvalue="${cook.name}"/></td>
<td><c:outvalue="${cook.value}"/></td></tr>
</c:forEach>
</table><p>
六、字符串数组循环
<%Stringas[]={
"Afirststring","Ladeuxiemestring","Ellatroisiemostringo"
};
request.setAttribute("stringArray",as);
%><p>
<c:forEachvar="string"items="${stringArray}">
<c:outvalue="${string}"/><br>
</c:forEach>
七、枚举
<%
Hashtablehashtable1=newHashtable();
pageContext.setAttribute("numberMap",hashtable1);
hashtable1.put(newInteger(1),"uno");
hashtable1.put(newInteger(2),"dos");
hashtable1.put(newInteger(3),"tres");
hashtable1.put(newInteger(4),"cuatro");
hashtable1.put(newInteger(5),"cinco");
hashtable1.put(newInteger(6),"seis");
hashtable1.put(newInteger(7),"siete");
hashtable1.put(newInteger(8),"ocho");
hashtable1.put(newInteger(9),"nueve");
hashtable1.put(newInteger(10),"diez");
java.util.Enumerationenumeration=hashtable1.keys();
pageContext.setAttribute("enumeration",enumeration);
%>
<c:forEachvar="item"items="${enumeration}"begin="2"end="10"step="2">
<c:outvalue="${item}"/><br>
</c:forEach><p>
八、map<p>
<c:forEachvar="prop"items="${numberMap}"begin="1"end="5">
<c:outvalue="${prop.key}"/>=<c:outvalue="${prop.value}"/><br>
</c:forEach>
</body>
</html>
相关推荐
JavaServer Pages Standard Tag Library (JSTL) 是一套用于简化Java Web应用程序开发的标签库。它提供了一系列预定义的标签,用于处理常见的JSP任务,如迭代、条件判断、XML处理等,从而避免在页面中直接使用Java...
**JSTL官方使用手册**,全称JavaServer Pages Standard Tag Library,是Java Web开发中的一个标准标签库,主要用于简化JSP页面的编程,提高代码的可读性和可维护性。JSTL提供了多种标签来处理常见的任务,如迭代、...
El表达式介绍.doc Expression Language.pdf jbp1-0-1.pdf jsp-2_1-fr-spec.pdf JSP-zh.pdf jsp.chm JSP12.PDF JSP2.0_7.pdf JSP2.0技术手册.rar jsp2_0.pdf JSP2_0技术手册.pdf jsp2_0技术手册.rar JSPXML.PDF JSP...
El表达式介绍.doc Expression Language.pdf jbp1-0-1.pdf jsp-2_1-fr-spec.pdf JSP-zh.pdf jsp.chm JSP12.PDF JSP2.0_7.pdf JSP2.0技术手册.rar jsp2_0.pdf JSP2_0技术手册.pdf jsp2_0技术手册.rar JSPXML.PDF JSP...
El表达式介绍.doc Expression Language.pdf jbp1-0-1.pdf jsp-2_1-fr-spec.pdf JSP-zh.pdf jsp.chm JSP12.PDF JSP2.0_7.pdf JSP2.0技术手册.rar jsp2_0.pdf JSP2_0技术手册.pdf jsp2_0技术手册.rar JSPXML.PDF JSP...
- JSTL 和 EL 可以协同工作,EL 用于表达式求值,JSTL 标签用于控制流程和数据处理。 - EL 可以直接在 JSTL 标签中使用,例如 `${}` 语法。 7. **优点** - 提高代码可读性:JSTL 标签比 JSP 脚本更直观,便于...
JSTL,全称为JavaServer Pages Standard Tag Library,是Java服务器页面标准标签库,它提供了一系列标准标签用于简化JSP开发,使代码更加结构化、可读性更强,减少Java脚本的使用。这个"JSTL使用手册 帮助文档"涵盖...
在更新的JSP 2.0规范中,EL表达式是默认启用的,可以直接在页面上使用,例如`${1 + 2}`。 JSTL的1.1版引入了fn标签库,提供了一些实用的字符串操作函数,如`fn:length()`、`fn:substring()`等。但请注意,不是所有...
JSTL(JavaServer Pages Standard Tag Library)是Java Web开发中的一个标准标签库,它提供了一系列的标签来简化JSP页面的编程,使得开发者能够更专注于业务逻辑而不是底层的Java代码。这个压缩包文件可能包含了关于...
通过阅读《Struts中文手册.pdf》可以深入理解Struts1.2的原理和配置,研究《JSTL.pdf》能掌握JSTL的各种标签用法,而《JSP.pdf》则可以帮助你巩固JSP的基础知识和实践技巧。这三份文档将构成一个全面的学习资源,...
提供的"JSTL使用手册.pdf"和"JSTL.pdf"文件应包含详细的JSTL使用指南,包括各个标签的用法、示例和最佳实践。建议仔细阅读这些文档,通过实践加深理解。 总的来说,JSTL是Java Web开发中提高效率和代码质量的重要...
《Java Web编程宝典(十年典藏版)》是一本集技能、范例、项目和应用为一体的学习手册,书中介绍了应用Java Web进行程序开发的各种技术、技巧。全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境...
**JSTL(JavaServer Pages Standard Tag Library)**是Java Web开发中的一种标准标签库,主要用于简化JSP页面的编写,提升代码的可读性和可维护性。它是由Apache软件基金会的Tomcat项目开发和维护的,是JSP 2.0及更...
这个库引入了几个Java函数,可以在EL表达式中使用,比如字符串操作、数组操作、日期时间处理等。这些函数可以极大地增强JSP页面的功能。 **5. fmt库** fmt库提供了国际化和本地化支持,如格式化日期、数字、货币等...
2. **脚本元素**: 声明、脚本块和表达式的使用,以及EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)的应用。 3. **JSP生命周期**: 从加载到销毁的过程,包括初始化、服务和销毁三个...
- JSP 2.0引入了“声明式”编程,鼓励使用EL和标签库,减少脚本let的使用。 - JSP 2.1引入了AJAX支持和改进的EL。 - JSP 2.2支持HTTP/2和WebSocket。 9. JSP生命周期: JSP页面经过编译、实例化、初始化、服务...
- 高级主题,如自定义标签库(Custom Tags)、JSTL(JavaServer Pages Standard Tag Library)的使用。 - 与其他Java EE组件的集成,如EJB(Enterprise JavaBeans)、JPA(Java Persistence API)等。 学习JSP时...
3. "JSTL详解--EL表达式.htm":专门讲解JSTL和EL的使用。 4. "jsp中pageEncoding、charset=UTF_8、setCharacterEncoding(UTF_8)详解.htm":深入解析JSP中的字符编码问题。 5. "tomcat处理get和post请求时产生乱码...
- **统一的标签库(Tag Library)**:JSP 2.0规范了自定义标签的实现,引入了JSTL(JavaServer Pages Standard Tag Library),提供了一系列标准的标签,如循环、条件判断等,使页面逻辑更清晰。 - **页面指令改进*...
- **JSP 2.0**: 引入了 EL (表达式语言) 和 JSTL (标准标签库),简化了页面逻辑的编写。 - **EL**: 提供了一种简便的方式来访问 JavaBean 属性和执行运算。 - **JSTL**: 包含一组预定义的标签,用于实现常见的页面...