URL 操作
JSTL core 库中的其余标记主要是关于 URL。这些标记中的第一个被适当地命名为 <c:url> 标记,用于生成 URL。尤其是, <c:url> 提供了三个功能元素,它们在为 J2EE Web 应用程序构造 URL 时特别有用:
在前面附加当前 servlet 上下文的名称
为会话管理重写 URL
请求参数名称和值的 URL 编码
清单 12 显示了 <c:url> 标记的语法。 value 属性用来指定基本 URL,然后在必要时标记对其进行转换。如果这个基本 URL 以一个斜杠开始,那么会在它前面加上 servlet 的上下文名称。可以使用 context 属性提供显式的上下文名称。如果省略该属性,那么就使用当前 servlet 上下文的名称。这一点特别有用,因为 servlet 上下文名称是在部署期间而不是开发期间决定的。(如果这个基本 URL 不是以斜杠开始的,那么就认为它是一个相对 URL,这时就不必添加上下文名称。)
清单 12. <c:url> 操作的语法
<c:url value="
expression" context="
expression"
var="
name" scope="
scope">
<c:param name="
expression" value="
expression"/>
...
</c:url>
URL 重写是由 <c:url> 操作自动执行的。如果 JSP 容器检测到一个存储用户当前会话标识的 cookie,那么就不必进行重写。但是,如果不存在这样的 cookie,那么 <c:url> 生成的所有 URL 都会被重写以编码会话标识。注:如果在随后的请求中存在适当的 cookie,那么 <c:url> 将停止重写 URL 以包含该标识。
如果为 var 属性提供了一个值(还可以同时为 scope 属性提供一个相应的值,这是可选的),那么将生成的 URL 赋值给这个限定了作用域的指定变量。否则,将使用当前的 JspWriter 输出生成的 URL。这种直接输出其结果的能力允许 <c:url> 标记作为值出现,例如,作为 HTML <a> 标记的 href 属性的值,如清单 13 中所示。
清单 13. 生成 URL 作为 HTML 标记的属性值
<a href="<c:url value='/content/sitemap.jsp'/>">View sitemap</a>
最后,如果通过嵌套 <c:param> 标记指定了任何请求参数,那么将会使用 HTTP GET 请求的标准表示法将它们的名称和值添加到生成的 URL 后面。此外,还进行 URL 编码:为了生成有效的 URL,将对这些参数的名称或值中出现的任何字符适当地进行转换。清单 14 演示了 <c:url> 的这种行为。
清单 14. 生成带请求参数的 URL
<c:url value="/content/search.jsp">
<c:param name="keyword" value="${searchTerm}"/>
<c:param name="month" value="02/2003"/>
</c:url>
清单 14 中的 JSP 代码被部署到一个名为 blog 的 servlet 上下文,限定了作用域的变量 searchTerm 的值被设置为 "core library" 。如果检测到了会话 cookie,那么清单 14 生成的 URL 将类似于清单 15 中的 URL。注:在前面添加上下文名称,而在后面附加请求参数。此外, keyword 参数值中的空格和 month 参数值中的斜杠都被按照 HTTP GET 参数的需要进行了编码(确切地说,空格被转换成了 + ,而斜杠被转换成了 %2F 序列)。
清单 15. 有会话 cookie 时生成的 URL
/blog/content/search.jsp?keyword=foo+bar&month=02%2F2003
当没有会话 cookie 时,生成的结果如清单 16 中所示。同样,servlet 上下文被添加到了前面,而 URL 编码的请求参数被附加到了后面。不过,除此以外还重写了基本 URL 以包含指定的会话标识。当浏览器发送用这种方式重写的 URL 请求时,JSP 容器自动抽取会话标识,并将请求与相应的会话进行关联。这样,需要会话管理的 J2EE 应用程序就无需依赖由应用程序用户启用的 cookie 了。
清单 16. 没有会话 cookie 时生成的 URL
/blog/content/search.jsp;jsessionid=233379C7CD2D0ED2E9F3963906DB4290
?keyword=foo+bar&month=02%2F2003
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jonathan_q_bo/archive/2006/01/03/569425.aspx
分享到:
相关推荐
2. **利用核心库执行条件逻辑和循环**:JSTL的核心库提供了一系列标记,如`<c:if>`、`<c:choose>`、`<c:when>`、`<c:otherwise>`等,用于执行条件逻辑;`<c:forEach>`标记则用于循环处理列表、数组等集合。这些标记...
### JSTL中if标签使用方法详解 JSTL(JavaServer Pages Standard Tag Library)是为简化JSP页面开发而设计的一组标准标签库。它提供了处理数据、条件逻辑等功能的强大工具,使得开发者无需编写复杂的Java代码即可...
**JSTL(JavaServer Pages Standard Tag Library)** 是一个标准的Java标签库,用于增强JSP页面的功能,简化Web开发。它提供了多种标签来处理常见的任务,如控制流程、XML处理、数据库操作等,使得代码更加简洁和...
1. `<c:forEach>`:用于遍历集合、数组或迭代对象,实现循环操作。 2. `<c:forTokens>`:对字符串进行分割,然后对每个分割出来的元素进行循环处理。 **使用JSTL的好处**: - 提高代码的可读性:通过使用XML样式的...
**C标签库**是JSTL中的核心库,全称为`core`标签库,提供了很多与控制流程相关的标签,如迭代、条件语句、URL操作等。下面将详细解释C标签库中的一些主要标签: 1. `<c:set>`:设置变量,可以用来在JSP页面或作用域...
### JSTL操作XML知识点详解 #### 一、引言 Java Server Pages Standard Tag Library (JSTL) 是一种标准的、基于XML的标签库,它简化了JSP页面的开发工作,使得开发者能够更加专注于业务逻辑而不是页面的布局与控制...
- **URL操作**:如`<c:url>`和`<c:param>`,构建动态URL并添加参数。 - **表达式语言(EL)**:JSTL与EL(Expression Language)结合使用,可以更高效地访问和操作JavaBean属性。 5. JSTL与EL的协同工作: EL是...
1. **Core**:这是最基本的组件,提供了一系列的控制流标签,如迭代(`<c:forEach>`)、条件语句(`<c:if>`、`<c:choose>`)、URL重写(`<c:url>`)等。 2. **I18N & Format**:国际化和格式化组件,支持日期、时间...
本案例主要关注JSTL中的C标签库,它是JSTL的核心部分,提供了控制流程和数据操作的标签。 C标签库是JSTL的一部分,全称为Core标签库,包含了处理数据集合、条件判断、循环控制等功能的标签。以下是一些C标签库中...
C标签是JSTL的一部分,全称为Core标签库,提供了大量实用的功能,如迭代数组、集合,执行条件语句,以及处理页面导航等。 在Java Web应用中,JSTL C标签可以帮助开发者避免在JSP页面中编写过多的Java脚本,使代码更...
1. **Core标签库**:这是最基础的标签库,提供了类似于HTML表单处理、控制流(如条件语句和循环)、URL重写等功能。 2. **XML标签库**(JSTL XML或`fmt`库):用于处理XML文档,支持XPath表达式,可以方便地解析和...
它提供了额外的标签功能,如日期和时间处理、URL重写、国际化等。这些功能是通过一系列自定义标签实现的,这些标签与JSTL的主库一起使用,可以极大地增强JSP页面的功能。 **2. EL(Expression Language)表达式:**...
1. **Core**:核心标签库,包含用于控制流程、条件判断、循环、URL操作等基础功能的标签。 2. **fmt**:格式化标签库,用于日期、数字和消息的国际化和格式化。 3. **fn**:函数库,提供一些辅助方法,如字符串操作...
本文将深入解析其中常用的C标签,包括表达式操作、流程控制、迭代操作和URL操作。 2. 表达式操作是JSTL中的关键部分,它包括四个主要标签: 2.1. `<c:out>`:此标签用于在页面上安全地输出数据,类似于JSP的表达式...
3. 使用JSTL标签:现在可以在JSP页面中使用JSTL标签,如`<c:forEach>`进行迭代,`<c:if>`进行条件判断,`<fmt:formatDate>`格式化日期等。 总之,JSTL是提升JSP页面编写效率的重要工具,而依赖注入则是现代Java应用...
- **Core(核心)标签库**:提供了控制流标签,如迭代、条件语句、URL重写等。 - **I18N(国际化)标签库**:支持多语言环境下的应用开发。 - **SQL标签库**:用于数据库操作,如执行查询、更新、插入和删除等。 - *...
Core JSTL标签库提供了许多用于控制流程、处理URL、导入页面、输出数据、进行条件判断和循环操作的标签。这些标签极大地简化了JSP开发,使代码更易于阅读和维护,同时也降低了对脚本语言的依赖。 ### 1. `<c:set>`...
【JSTL手册翻译】章节主要讲解了JSTL中与URL相关的操作,特别是如何在JSP页面中处理和管理URL。本章聚焦于第七节——URL-Related Action,主要涉及超文本链接、URL重写、编码以及资源的引入。 **超文本链接**: 在...