您的位置:首页 > Web前端 > JavaScript

JSTL标签库学习笔记 五、核心标签库的URL操作标签

2013-08-27 17:32 507 查看
URL操作标签

JSTL包含3个与URL操作有关的标签,分别为:<c:import>、<c:redirect>和<c:url>标签。

它们的作用为:显示其他文件的内容、网页导向、产生URL。下面将详细介绍这3个标签的使用方法。

1.4.1、<c:import>标签

【功能】:该标签可以把其他静态或动态文件包含到本JSP页面。同<jsp:include>的区别为:只能包含同一个web应用中的文件。

而<c:import>可以包含其他web应用中的文件,甚至是网络上的资源。

【语法1】:

<c:import
url=”url” [context=”context”][ value=”value”]

[scope=”page|request|session|application”]
[charEncoding=”encoding”]>

语法2:

<c:import
url=”url” varReader=”name” [context=”context”][charEncoding=”encoding”]>

<c:import>标签参数说明

名称

说明

EL

类型

必须

默认值

url

被导入资源的URL路径

Y

String





context

相同服务器下其他的web工程,必须以“"”开头

Y

String





var

以String类型存入被包含文件的内容。

N

String





Scope

var变量的JSP范围

N

String



page

charEncoding

被导入文件的编码格式

Y

String





varReader

以Reader类型存储被包含文件内容

N

String





【参数说明】:

(1)URL为资源的路径,当应用的资源不存在时系统会抛出异常,因此该语句应该放在<c:catch></c:catch>语句块中捕获。

应用资源有两种方式:绝对路径和相对路径。

使用绝对路径示例如下:

<c:import
url=”http://www.baidu.com”>

使用相对路径的实例如下:

<c:import
url=”aa.txt”>
aa.txt放在同一文件目录。

如果以“/”开头表示应用的根目录下。例如:tomcat应用程序的根目录文件夹为webapps。导入webapps下的文件bb.txt的编写方式为:

<c:import
url=”/bb.txt”>

如果访问webapps管理文件夹中其他web应用就要用context属性。

(2)context属性用于在访问其他web应用的文件时,指定根目录。

例如,访问root下的index.jsp的实现代码为:

<c:import
url=”/index.jsp” context=”/root”>

等同于webapps/root/index.jsp

(3)var、scope、charEncoding、varReader是可选属性。具体使用方式见示例代码。

【示例代码】:代码实现了从绝对路径导入文件和从相对路径导入,同时使用var对象指定用变量来存储文件,并输出存入的文件内容。

代码1.4.1
<c:import>标签示例:coredemo10.jsp

1 <%@ page contentType="text/html;charset=GBK" %>

2 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

3 <html>

4 <head>

5 <title>JSTL: -- import标签实例</title>

6 </head>

7 <body>

8 <h4><c:out value="import实例"/></h4>

9 <hr>

10 <h4><c:out value="绝对路径引用的实例" /></h4>

11 <c:catch var="error1">

12 <c:import url="http://www.baidu.com"/>

13 </c:catch>

14 <c:out value="${error1}"></c:out>

15 <hr>

16 <h4>

17 <c:out value="相对路径引用的实例,引用本应用中的文件" /></h4>

18 <c:catch>

19 <c:import url="a1.txt" charEncoding="gbk"/>

20 </c:catch>

21 <hr>

22 <h4><c:out value="使用字符串输出、相对路径引用的实例,并保存在session范围内" /></h4>

23 <c:catch var="error3">

24 <c:import var="myurl" url="a1.txt" scope="session" charEncoding="gbk"></c:import>

25 <c:out value="${myurl}"></c:out>

26 <c:out value="${myurl}" />

27 </c:catch>

28 <c:out value="${error3}"></c:out>

29 </body>

30 </html>

【代码解析】:

(1)第12行使用绝对路径导入百度首页,导入时使用<c:catch></c:catch>(11和12行)捕获异常。

(2)使用相对路径导入同一文件夹下的a1.txt文件,接收的字符编码格式使用charEncoding设置为gbk。

(3)同样导入a1.txt,不同的时使用var定义的变量接收要导入的文件,并存储在session中,如果在其他页面同样也要导入该文件,

只须使用<c:out>输出a1.txt的值即可。
【说明】:

(1)在使用绝对路径导入时,因为电脑没有联网所以抛出异常。

(2)使用相对路径输出时,同样是引入的a1.txt文件显示的结果却不相同,这可以说明直接使用<c:import>导入,

不设定var参数是直接在页面中显示的文本信息。而使用var参数输出时输出的实现存入的字符串。

提示:读者在练习时可以使用Tomcat的首页来导入url=”http://127.0.0.1:8080”来显示效果。

1.4.2、<c:redirect>标签

【功能】:该标签用来实现了请求的重定向。同时可以在url中加入指定的参数。

例如:对用户输入的用户名和密码进行验证,如果验证不成功重定向到登录页面;或者实现web应用不同模块之间的衔接。

【语法1】:

<c:redirect url=”url” [context=”context”]>

【语法2】:

<c:redirect url=”url”[context=”context”]>

<c:param name=”name1” value=”value1”>

</c:redirect>

【参数说明】:

(1)url指定重定向页面的地址,可以是一个string类型的绝对地址或相对地址。

(2)用于导入其他web应用中的页面。

【示例代码】:代码实现了当请求页面时重定向到tomcat首页。

<c:redirect>标签示例:coredemo11.jsp

<%@ page contentType="text/html;charset=GBK" %>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:redirect url="http://127.0.0.1:8080">

<c:param name="uname">olive</c:param>

<c:param name="password">01234</c:param>

</c:redirect>
【代码解析】

(1)使用重定向与载入页面不同,载入页面时在本页面中插入其他页面,而重定向是请求转发,等于在页面中重新输入了一次url。

当重定向到某个页面时浏览器中的地址会发生变化。

(2)使用重定向时不用使用<c:catch>语句,当输入页面访问不到时,浏览器会报错,跟程序运行无关。

如果使用重定向时页面定义的内容将不会得到显示。

(3)在重定向时为URL添加了两个参数和参数值:uname=olive和password=01234。

1.4.3、<c:url>标签

【功能】:该标签用于动态生成一个String类型的URL,可以同<c:redirect>标签共同使用,也可以使用html的<a>标签实现超链接。

【语法1】:指定一个url不做修改,可以选择把该url存储在JSP不同的范围中。

<c:url
value=”value” [var=”name”][scope=”page|request|session|application”][context=”context”]/>

【语法2】:给url加上指定参数及参数值,可以选择以name存储该url。

<c:url value=”value” [var=”name”][scope=”page|request|session|application”]

[context=”context”]>

<c:param name=”参数名” value=”值”>

</c:url>
【示例代码】:代码实现了使用动态生成url实现了网页的超链接。

<c:url>标签示例:coredemo12.jsp

<%@ page contentType="text/html;charset=GBK" %>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:out value="url标签使用"></c:out>

<h4>使用url标签生成一个动态的url,并把值存入session中.</h4>

<hr>

<c:url value="http://127.0.0.1:8080" var="url" scope="session">

</c:url>

<a href="${url}">Tomcat首页</a>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: