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

来源:互联网 发布:广西广电网络怎么收费 编辑:程序博客网 时间:2024/05/17 07:24

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


【参数说明】:

1URL为资源的路径,当应用的资源不存在时系统会抛出异常,因此该语句应该放在<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属性。

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

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

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

     等同于webapps/root/index.jsp

3varscopecharEncodingvarReader是可选属性。具体使用方式见示例代码。

【示例代码】:代码实现了从绝对路径导入文件和从相对路径导入,同时使用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>1112行)捕获异常。

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>

【参数说明】:

1url指定重定向页面的地址,可以是一个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=olivepassword=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>


0 0