- 浏览: 52229 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
小人物xi:
[url][/url]
Servlet -
小人物xi:
Servlet -
justice_jl:
O(∩_∩)O~非常感谢,学习了
struts,spring,hibernate整合 -
justice_jl:
O(∩_∩)O~,学习了,非常感谢!
ssh学习(二)spring-hibernate整合
一、JSP定义
JSP 属性定义使用<jsp-property-group/>元素配置,主要包括如下四个方面。
·是否允许使用表达式语言:使用<el-ignored/>元素确定,默认值为false 。
·是否允许使用Java 脚本:使用<scripting-invalid/>元素确定,默认值为false 。
·声明JSP 页面的编码:使用<page-encoding/>元素确定。
·使用隐式包含:使用<include-prelude/>和<include-coda/>元素确定。
例:
二、表达式语言
使用表达式语言可以以标记格式方便地访问JSP 的隐含对象和JavaBeans 组件
表达式语言的语法格式是:${expression}
(1)表达式语言使用算术和逻辑运算
表达式语言支持的算术运算符非常多,在Java 语言里支持的算术运算符,表达式语
言都可以使用。例:${6-5}输出1,而\${6-5}则直接输出${6-5}
注意:如需要在支持表达式语言的页面中正常输出"$"符号,则在"$"符号前加特义字符"γ' ,否则系统以为"$"是表达式语言的标记。
逻辑运算符也适用。
(2)表达式语言的内置对象
使用表达式语言可以直接获取请求参数,可获取页面中某个JavaBean 的属性值,获取请求头及获取session 属性值等,这些都得益于表达式语言的内置对象。
表达式语言包含如下11 个内置对象。
• pageContext: 代表该页面的pageContext 对象,与JSP 的pageContext 内置对象相同。
• pageScope: 用于获取page 范围的属性值。
• requestScope: 用于获取request 范围的属性值。
• sessionScope: 用于获取session 范围的属性值。
• applicationScope: 用于获取application 范围的属性值。
• param: 用于获取请求的参数值。
• paramValues: 用于获取请求的参数值,与param 的区别在于,该对象用于获取属
性值为数组的属性值。
• header: 用于获取请求头的属性值。
• headerValues: 用于获取请求头的属性值,与header 的区别在于,该对象用于获
取属性值为数组的属性值。
• initParam: 用于获取请求Web 应用的初始化参数。
• cookie: 用于获取应用的Cookie 值。
例:
(3)表达式语言的自定义函数
下面介绍定义函数的开发过程。
(a)开发函数处理类:函数处理类就是普通类,这个普通类中包含若干个静态方法,
每个静态方法都可定义成一个函数。
(b)使用标签库定义函数,配置文件如下:
(c)与自定义标签库相同,在web.xml 文件中要增加标签库定义
(d)在JSP 页面中使用函数时也需要先导入标签库,然后再使用函数。下面是使用函数的JSP 页面片段:
注意:函数处理类的方法必须是public static,因为这些方法是直接调用,无须实例化
自定义函数,也提供了类似于自定义标签库的作用,使用简单的指令就可以完成复杂的功能。与自定义标签库不同的是,可以在表达式语言中直接使用函数
三、简化的自定义标签
无须重写烦琐的doStartTag和doEndTag 等方法。即使是带标签体的标签,也与不带标签体的标签处理方式完全相同,无须重写doAfterBody 等方法,通常只需重写doTag 方法。
(1)书写标签处理类。
JSP 2.0 的标签处理类继承SimpleTagSupport 类,通常只需重写doTag 方法,即使是带标签体的标签,通常也只需重写doTag 方法。下面是标签处理类的代码:
(2) 编写标签库文件
(3)在web.xml 文件中,定义了标签库URI
(4)在JSP 页面中使用标签时,同样也需要先导入标签库,然后使用标签
四、Tag File支持
Tag File 是自定义标签的简化用法,使用Tag File 可以无须定义标签处理类和标签库文件,甚至无须在web.xml 文件中定义标签库,但仍然可以在JSP 页面中使用自定义标签。
下面以Tag File 建立一个迭代器标签,其步骤如下。
(1)建立Tag 文件,在Tag File 的自定义标签中, Tag File 代理了标签处理类,它的格式类似于JSP 文件。可以这样理解:如使用JSP 代替Servlet 作为表现层一样, Tag File使用了更简单的Tag File 代替了标签处理类。
Tag File 具有以下5 个编译指令。
• taglib: 作用与JSP 文件中的taglib 指令效果相同,用于导入其他标签库。
• include: 作用与JSP 文件中的include 指令效果相同,用于导入其他JSP ,或静态页面。
• tag: 作用类似于JSP 文件中的page 指令,有pageEncoding 、body-content 等属性,用于设置页面编码等属性。
• attribute: 用于设置自定义标签的属性,类似于自定义标签处理类中的标签属性。
• variable: 用于设置自定义标签的变量,这些变量将传回JSP 页面使用。
下面是迭代器标签的Tag File ,这个Tag File 的语法与JSP 语法非常相似:
这个Tag File 的命名必须遵守如下规则: tagName.tag。即Tag File 的文件名就是标签名,文件名后缀是tag。将该文件存放在某个路径下,这个路径就是标签库路径。
(2) 在页面中使用自定义标签时,需要先导入标签库,再使用标签。使用标签与普
通标签用法完全相似,只在导入标签时存在一些差异。由于此时的标签库没U有RI,只
有标签库路径。因此导入标签时,使用如下语法格式:
其中, prefix 与之前的taglib 指令的prefix属性完全相同,用于确定标签前缀:而tagdir标签库路径下存放很多Tag File,每个Tag File 对应一个标签。
下面是使用标签的JSP 页面代码:
tags 表明该标签使用IWEB-INF/tags 路径下的Tag File 处理标签;而iterator 是标签名,对应在标签库路径下包含iterator.tag 文件,由该文件负责处理标签。
Tag File 是自定义标签的简化。事实上,就如同JSP 文件会编译成Servlet 一样, Tag File 也会编译成Tag 处理类,自定义标签的后台依然由标签处理类完成,而这个过程由容器完成
JSP 属性定义使用<jsp-property-group/>元素配置,主要包括如下四个方面。
·是否允许使用表达式语言:使用<el-ignored/>元素确定,默认值为false 。
·是否允许使用Java 脚本:使用<scripting-invalid/>元素确定,默认值为false 。
·声明JSP 页面的编码:使用<page-encoding/>元素确定。
·使用隐式包含:使用<include-prelude/>和<include-coda/>元素确定。
例:
<?xm1 version="1.0" encoding="ISO-8859-1"?> <!-- Serv1et2.4 以上版本的Web 应用配置的根元素 --> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org /2 001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <!-- 关于JSP 的配置信息 --> <jsp-config> <jsp-property-group> <!-- 对哪个文件应用配置二 --> <url-pattern>/test1.jsp</url-pattern> <!-- 忽略表达式语言 --> <el-ignored>true</el-ignored> <!-- 页面编码方式--> <page-encoding>GBK</page-encoding> <!-- 不允许使用Java 脚本 --> <scripting-invalid>true</scripting-invalid> <!-- 隐式导入页面头--> <include-prelude>/inc/top.jspf</include-prelude> <!-- 隐式导入页面尾--> <include-coda>/inc/bottom.jspf</include-coda> </jsp-property-group> <jsp-property-group> <!-- 对哪个文件应用配置--> <url-pattern>/test2.jsp</url-pattern> <el-ignored>false</el-ignored> <!-- 页面编码方苯--> <page-encoding>GBK</page-encoding> <!-- 允许使用Java 脚本--> <scripting-invalid>false</scripting-invalid> </jsp-property-group> </jsp-config> </web-app>
二、表达式语言
使用表达式语言可以以标记格式方便地访问JSP 的隐含对象和JavaBeans 组件
表达式语言的语法格式是:${expression}
(1)表达式语言使用算术和逻辑运算
表达式语言支持的算术运算符非常多,在Java 语言里支持的算术运算符,表达式语
言都可以使用。例:${6-5}输出1,而\${6-5}则直接输出${6-5}
注意:如需要在支持表达式语言的页面中正常输出"$"符号,则在"$"符号前加特义字符"γ' ,否则系统以为"$"是表达式语言的标记。
逻辑运算符也适用。
(2)表达式语言的内置对象
使用表达式语言可以直接获取请求参数,可获取页面中某个JavaBean 的属性值,获取请求头及获取session 属性值等,这些都得益于表达式语言的内置对象。
表达式语言包含如下11 个内置对象。
• pageContext: 代表该页面的pageContext 对象,与JSP 的pageContext 内置对象相同。
• pageScope: 用于获取page 范围的属性值。
• requestScope: 用于获取request 范围的属性值。
• sessionScope: 用于获取session 范围的属性值。
• applicationScope: 用于获取application 范围的属性值。
• param: 用于获取请求的参数值。
• paramValues: 用于获取请求的参数值,与param 的区别在于,该对象用于获取属
性值为数组的属性值。
• header: 用于获取请求头的属性值。
• headerValues: 用于获取请求头的属性值,与header 的区别在于,该对象用于获
取属性值为数组的属性值。
• initParam: 用于获取请求Web 应用的初始化参数。
• cookie: 用于获取应用的Cookie 值。
例:
<%@page contentType="text/html; charset=gb2312" language="java"%> <html> <head> <title>表达式语言-内置对象</title> </head> <body> <h2> 表达式语言-内置对象 </h2> <hr> 请输入你的名字: <!-- 通过表单提交请求参数 --> <form action="test.jsp" method="post"> <!-- 通过${param[ 'name']} 获取请求参数 --> 你的名字= <input type="text" name="name" value="${param['name']}"> <input type="submit" value="提交"> </form> <% session.setAttribute("user", "abc"); %> <br> <table border="1" bgcolor="aaaadd"> <tr> <td> <b>表达式语言</b> </td> <td> <b>计算结果</b> </td> <tr> <!-- 使用两种方式获取请求参数值--> <td> \${param.name} </td> <td> ${param.name} </td> </tr> <tr> <td> \${param["name"] } </td> <td> ${param["name"] } </td> </tr> <!-- 获取请求头信息--> <tr> <td> \${header.host} </td> <td> ${header.host} </td> </tr> <tr> <td> \${header["accept"]} </td> <td> ${header["accept"]} </td> </tr> <!-- 获取初始化参数--> <tr> <td> \${initParam["author"]} </td> <td> ${initParam["author"] } </td> </tr> <!-- 获取sesslon 属性--> <tr> <td> \${sessionScope["user"]} </td> <td> ${sessionScope["user"]} </td> </tr> </table> </body> </html>
(3)表达式语言的自定义函数
下面介绍定义函数的开发过程。
(a)开发函数处理类:函数处理类就是普通类,这个普通类中包含若干个静态方法,
每个静态方法都可定义成一个函数。
public class Functions { // 对字符串进行反转 public static String reverse(String text) { return new StringBuffer(text).reverse().toString(); } // 统计字符串的个数 public static int countChar(String text) { return text.length(); } }
(b)使用标签库定义函数,配置文件如下:
<?xml version="1.0" encoding="UTF-8" ?> <!-- 标签库配置文件的根元素 --> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/200l/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0"> <jsp-version>2.0</jsp-version> <tlib-version>l.O</tlib-version> <!-- 定义第一个函数--> <function> <!-- 定义第一个函数:reverse--> <name>reverse</name> <!-- 定义函数的处理类 --> <function-class>lee.Functions</function-class> <!-- 定义函数的对应的方法--> <function-signature> java.lang.String reverse( java.lang.String ) </function-signature> </function> <function> <!-- 定义第二个函数: countChar --> <name>countChar</name> <!-- 定义函数的处理类 --> <function-class>lee.Functions</function-class> <!-- 定义函数的对应的方法 --> <function-signature> int countChar( java.lang.String ) </function-signature> </function> </taglib>
(c)与自定义标签库相同,在web.xml 文件中要增加标签库定义
(d)在JSP 页面中使用函数时也需要先导入标签库,然后再使用函数。下面是使用函数的JSP 页面片段:
<%@page contentType="text/html; charset=gb2312" language="java"%> <!-- 导入标签库 --> <%@taglib prefix="my" uri="/tags/mytag"%> <html> <head> <title>表达式语言-自定义函数</title> </head> <body> <h2> 表达式语言自定义函数 </h2> <hr> 请输入---个字符串: <form action="functions.jsp" method="post"> 字符串= <input type="text" name="name" value="S{param['name']}"> <input type="submit" value="提交"> </form> <table border="l" bgcolor="aaaadd"> <tr> <td> <b>表达式语言</b> </td> <td> <b>计算结果</b> </td> <tr> <tr> <td> \${param["name"] } </td> <td> ${param["name"]} </td> </tr> <!-- 使用reverse 函数 --> <tr> <td> \${my:reverse(param["name"])} </td> <td> ${my:reverse(param["name"])} </td> </tr> <tr> <td> \${my:reverse(my:reverse(param["name"]))} </td> <td> ${my:reverse(my:reverse(param["name"]))} </td> </tr> <!-- 使用countChar 函数 --> <tr> <td> \${my:countChar(param["name"])} </td> <td> ${my:countChar(param["name"])} </td> </tr> </table> </body> </html>
注意:函数处理类的方法必须是public static,因为这些方法是直接调用,无须实例化
自定义函数,也提供了类似于自定义标签库的作用,使用简单的指令就可以完成复杂的功能。与自定义标签库不同的是,可以在表达式语言中直接使用函数
三、简化的自定义标签
无须重写烦琐的doStartTag和doEndTag 等方法。即使是带标签体的标签,也与不带标签体的标签处理方式完全相同,无须重写doAfterBody 等方法,通常只需重写doTag 方法。
(1)书写标签处理类。
JSP 2.0 的标签处理类继承SimpleTagSupport 类,通常只需重写doTag 方法,即使是带标签体的标签,通常也只需重写doTag 方法。下面是标签处理类的代码:
// 简单标签处理类,继承SimpleTagSupport 类 public class MylteratorTag extends SimpleTagSupport { // 标签属性 private String bean; // 标签属性必须的setter 和getter 方法 public void setBean(String bean) { this.bean = bean; } public String getBean() { return bean; } // 标签的处理方法,简单标签处理类只需要重写doTag 方法 public void doTag() throws JspException, IOException { // 从page scope 中获取名为bean 的集合属性 Collection<String> itemList = (Collection<String>) getJspContext().getAttribute(bean); // 遍历集合 for (String s : itemList) { // 将集合的元素设置到page 范围 getJspContext().setAttribute("item", s); getJspBody().invoke(null); } } }
(2) 编写标签库文件
<?xml version="1.0" encoding="UTF-8" ?> <taglib 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-jsptaglibrary_2_0.xsd" version="2.0"> <!-- JSP 版本 --> <jsp-version>2.0</jsp-version> <tlib-version>1.0</tlib-version> <!-- 定义第一个标签 --> <tag> <!-- 定义标签名 --> <name>helloWorld</name> <!-- 定义标签的处理类 --> <tag-class>lee.HelloWorldSimpleTag</tag-class> <!-- 定义标签体为空 --> <body-content>empty</body-content> </tag> <!-- 定义第二个标签 --> <tag> <!-- 定义标签名 --> <name>iterator</name> <!-- 定义标签处理类 --> <tag-class>lee.MylteratorTag</tag-class> <!-- 定义标签体,该标签体是不允许脚本的标签 --> <body-content>scriptless</body-content> <!-- 定义标签属性 --> <attribute> <name>bean</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib>
(3)在web.xml 文件中,定义了标签库URI
(4)在JSP 页面中使用标签时,同样也需要先导入标签库,然后使用标签
四、Tag File支持
Tag File 是自定义标签的简化用法,使用Tag File 可以无须定义标签处理类和标签库文件,甚至无须在web.xml 文件中定义标签库,但仍然可以在JSP 页面中使用自定义标签。
下面以Tag File 建立一个迭代器标签,其步骤如下。
(1)建立Tag 文件,在Tag File 的自定义标签中, Tag File 代理了标签处理类,它的格式类似于JSP 文件。可以这样理解:如使用JSP 代替Servlet 作为表现层一样, Tag File使用了更简单的Tag File 代替了标签处理类。
Tag File 具有以下5 个编译指令。
• taglib: 作用与JSP 文件中的taglib 指令效果相同,用于导入其他标签库。
• include: 作用与JSP 文件中的include 指令效果相同,用于导入其他JSP ,或静态页面。
• tag: 作用类似于JSP 文件中的page 指令,有pageEncoding 、body-content 等属性,用于设置页面编码等属性。
• attribute: 用于设置自定义标签的属性,类似于自定义标签处理类中的标签属性。
• variable: 用于设置自定义标签的变量,这些变量将传回JSP 页面使用。
下面是迭代器标签的Tag File ,这个Tag File 的语法与JSP 语法非常相似:
<%@ tag pageEncoding="GBK"%> <!-- 使用JSTL 的标签 --> <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%> <!-- 定义了四个标签属性--> <%@ attribute name="color"%> <%@ attribute name="bgcolor"%> <%@ attribute name="title"%> <%@ attribute name="bean"%> <table border="l" bgcolor="${color}" bordercolor="OOOOOO"> <tr> <td> <b>${title}</b> </td> </tr> <c:forEach items="${bean}" var="var"> <tr> <td bgcolor="${bgcolor}"> ${var} <ltd> </tr> </c:forEach> </table>
这个Tag File 的命名必须遵守如下规则: tagName.tag。即Tag File 的文件名就是标签名,文件名后缀是tag。将该文件存放在某个路径下,这个路径就是标签库路径。
(2) 在页面中使用自定义标签时,需要先导入标签库,再使用标签。使用标签与普
通标签用法完全相似,只在导入标签时存在一些差异。由于此时的标签库没U有RI,只
有标签库路径。因此导入标签时,使用如下语法格式:
<%@ taglib prefix="tagPrefix" tagdir="path"%>
其中, prefix 与之前的taglib 指令的prefix属性完全相同,用于确定标签前缀:而tagdir标签库路径下存放很多Tag File,每个Tag File 对应一个标签。
下面是使用标签的JSP 页面代码:
<!-- 导入标签 --> <%@ taglib prefix="tags" tagdir="/WEB-INF/tags"%> <%@ page contentType="text/html;charset=GBK" import="java.util.*"%> <html> <head> <title>法代器tag file</title> </head> <body> <h2> 迭代器tag file </h2> <hr> <% //创建集合对象,用于迭代 List<String> a = new ArrayList<String>(); a.add("hello"); a.add("world"); a.add("java"); //将集合对象放入页面范围 pageContext.setAttribute("a", a); %> //使用自定义标签 <tags:iterator color="#99dd99" bgcolor="#9999cc" title="迭代器" bean="${pageScope.a}" /> </body> </html>
tags 表明该标签使用IWEB-INF/tags 路径下的Tag File 处理标签;而iterator 是标签名,对应在标签库路径下包含iterator.tag 文件,由该文件负责处理标签。
Tag File 是自定义标签的简化。事实上,就如同JSP 文件会编译成Servlet 一样, Tag File 也会编译成Tag 处理类,自定义标签的后台依然由标签处理类完成,而这个过程由容器完成
发表评论
-
SimpleTagSupport
2009-03-06 11:34 1985SimpleTagSupport类别顾名思义,就是可以处理一些 ... -
Listener
2008-12-10 17:17 1470Listener 的作用非常类似于load-on-startu ... -
Filter
2008-12-10 17:05 1822Filter 并不是一个标准的Servlet ,它不能处理用户 ... -
自定义标签库
2008-12-10 16:44 1932实现自定义标签按如下步骤进行: (1)开发自定义标签处理类; ... -
Servlet
2008-12-10 15:37 3145Servlet 是个特殊的Java 类 ... -
JSP内置对象
2008-12-10 15:09 1725JSP 页面中包含9 个内置 ... -
JSP动作指令
2008-12-10 11:29 1234动作指令与编译指令不 ... -
JSP编译指令
2008-12-10 10:36 1253• page: 该指令是针对当前页面的指令。 • includ ...
相关推荐
本实例将深入探讨`Tag`的使用,以及如何通过JSP 2.0新特性来简化自定义标签的开发过程。 自定义标签的核心在于Tag Handler,这是处理特定标签行为的Java类。在JSP 2.0之前,创建自定义标签需要编写复杂的TLD(Tag ...
JSP 2.0在JSP 1.2的基础上做了许多改进,引入了许多新特性和功能: - **表达式语言(EL, Expression Language)**:EL是一种轻量级的脚本语言,用于简化JSP页面中的数据访问。它提供了一种简洁的方式来获取和设置...
通过覃华教授的JSP2.0教学PPT,学习者可以系统地学习JSP2.0的核心概念、新特性,以及如何利用这些特性进行实际的Web应用开发。通过实践项目,加深理解并提升技能,为将来从事Java Web开发打下坚实基础。
总之,《jsp 2.0技术手册中文版》涵盖了JSP 2.0的核心概念、新特性和实践技巧,是学习和掌握这一技术的重要参考资料。通过深入阅读和实践,开发者可以更好地利用JSP 2.0构建高效、可维护的Web应用程序。
1. **表达式语言(EL)**:EL(Expression Language)是JSP 2.0引入的新特性,用于简化页面中的数据绑定。它提供了一种简洁的语法,可以方便地访问JavaBean的属性,无需使用脚本let或JSP动作。 2. **标准标签库(JSTL)...
9. **JSP 2.0新特性** - **内置对象**:如`pageContext`、`session`、`request`等,无需再通过`jsp:useBean`声明。 - **分离Java代码**:鼓励使用Servlet 2.4的MVC模式,将业务逻辑移至Java类中,JSP仅用于显示...
JSP 2.0新特性** - **标签文件(Tag Files)**:JSP 2.0引入了新的标签文件格式,允许将自定义标签的实现与声明分开,提高了可读性和可重用性。 - **EL(Expression Language)**:增强了表达式语言,使其更加强大...
- **JSP 2.0 新特性**:详细介绍JSP 2.0相对于1.2版本的新特性,包括自定义标签的开发和使用。 - **开发实例**:提供丰富的示例代码,帮助读者理解和应用JSP 2.0技术。 **3. 光盘源码分析** 光盘源码通常包含与...
**正文** ...综上,《JSP2.0技术手册》涵盖了JSP2.0的各个方面,包括核心概念、新特性和实战应用,是学习和进阶JSP技术的重要参考资料。通过深入学习,开发者能够构建高效、易于维护的Web应用程序。
**二、JSP 2.0 的新特性** 1. **表达式语言(EL, Expression Language)**:EL简化了页面中的数据绑定,使得在JSP页面中获取和设置JavaBean属性变得更为方便。 2. **JSTL(JavaServer Pages Standard Tag Library)*...
JSP 2.0是这个技术的一个重要版本,它引入了许多改进和新特性,使得开发Web应用程序更加便捷和高效。本教程由覃华编写,旨在为大学学习者提供全面的JSP 2.0知识,帮助他们掌握这一核心技术。 **JSP 2.0 的主要特性*...
此外,手册还深入探讨了JSP 2.0中的新特性,如表达式语言(EL)、JSP标准标签库(JSTL)以及JSP 2.0的自定义标签开发。这些新特性使得JSP页面开发更加简洁、高效和易于维护。 最后,手册通过一系列实战案例,展示了...
**JSP 2.0 API 知识点详解** ...JSP 2.0是其一个重要版本,带来了许多改进和新特性,提升了开发效率...共享的“JSP2.0 API chm”帮助文档无疑是一个宝贵的资源,有助于开发者在实践中进一步探索和提升JSP 2.0的技术水平。
JSP2.0技术手册中的源码可能包含了各种示例,涵盖了JSP2.0的新特性和最佳实践。通过学习这些源码,开发者可以深入理解JSP的工作原理,提升实际项目开发能力。 **七、JSP2.0技术手册的价值** 该手册提供了详尽的JSP...
这些实例涵盖JSP基本元素的使用、EL和JSTL的实践以及JSP 2.0新特性的应用。 通过深入学习本手册,初学者不仅可以掌握JSP 2.0的基础知识,还能了解到如何利用这些知识构建实际的web应用程序。对于希望快速入门JSP和...
**JSP2.0新特性** 1. **表达式语言(EL)**:JSP2.0引入了EL,它是一种简洁的语法,用于在页面上获取和操作JavaBean的属性。EL简化了JSP页面中的脚本元素,提高了可读性和可维护性。 2. **JSTL(JavaServer Pages ...
在本手册中,你将深入理解JSP2.0的关键特性、语法以及最佳实践。 ### JSP2.0的主要改进与特性 1. **表达式语言(EL)增强**:JSP2.0引入了更强大的EL,它允许开发者用简洁的语法访问JavaBean属性,减少了页面中的...