第五章 URL标签

一:URL操作

   JSTL包含三个与URL操作有关的标签,分别是

   <c:import>:用来将其它文件的内容包含起来

   <c:redirect>:页面导航

   <c:rul>:URL产生

 

二:<c:import />

     此标签可以把其它静态或动态文件包含至本身Jsp网页,它和<jsp:include>最大的区别在于:<jsp:include>只能包含和自己同一个WEB工程下的文件,而<c:import>除了能包含和自己同一个WEB工程下的文件外,还可以包含不同WEB工程或者是其它网站的网站。

     属性:url:被包含文件的地址

              context:同一容器下,其它WEB工程的上下文,即其它工程的目录名称。

              var:将包含文件的内容以字符串的形式存储在此变量中。

              scope:范围

              charEncoding:编码

              varReader:将包含文件的内容以字符流的形式存储在此变量中。

   示例1:

      <c:import url="http://www.hao123.com/indexk.html" />经试验以后,可以看到,虽然可以引入进来,但是编码格式全错位了,建议大家不要引入网上或者其它WEB工程的页面,因为样式表,js等等文件不能引用进来,除非它的css,js文件是以绝对定位的方式引用的,即向下面的方式:
     <link rel="stylesheet" type="text/css"   href="
http://localhost:8080/liaoliao/css/myindex.css" />
     <script type="text/javascript" src="
http://localhost:8080/liaoliao/script/my.js"></script>

  示例2:

   <c:import url="a.jsp" />可以看到这里引入同一工程下的页面后,什么都很正常,但是请看页面显示的源码:     

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<body>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<body>
		这里是A.JSP页面,
		<br />
		<hr />
	</body>
</html>
	</body>
</html>

        这时,可以看到生成的页面代码不是我们想要的页面,那么这时就需要改进A.JSP页面的代码,如下

        //a.jsp页面      

<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
这里是A.JSP页面,
<br />
<hr />

      再看看生成的页面代码:   

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<body>
这里是A.JSP页面,
<br />
<hr />
	</body>
</html>

      可以看到,被包含页面只需要有用的代码就行了,不需要以正规的HTML代码来写.

 

三:<c:rul>

      value: url地址
      context: 相同容器下的其它WEB工程目录
      var: 被包含文件地址的内容存放到指定的变量中
      scope :var定义变量所存储的范围

      示例1:
     <a href="<c:url value="http://www.baidu.com" />">百度</a>
     生成的代码: <a href="http://www.baidu.com">百度</a>

 

      示例2:
    <a href="<c:url value="http://www.baidu.com">
                     <c:param name="uname" value="admin"/>
                 </c:url>">百度</a>
     生成的代码:<a href="http://www.baidu.com?uname=admin">百度</a>

 

四:<c:redirect>

      <c:redirecdt>是服务器外部跳转

       url 跳转的页面地址
       context 同一容器下,其它WEB工程目录

 

       示例1:
       <c:redirect url="http://www.hao123.com/indexk.html"/>
       相当于JSP中的:response.sendRedirect()
       相当于JS中的window.location=” http://www.hao123.com/indexk.html

 

       示例2:
        <c:redirect url="a.jsp">
               <c:param name="uname" value="admin" />
         </c:redirect>
        可以看到地址栏生成的代码为:http://localhost:8080/jstldemo/a.jsp?uname=admin

 

        示例3:
       <c:redirect url="http://www.baidu.com/">
                <c:param name="uname" value="admin" />
       </c:redirect>
        可以看到地址栏生成的代码为:http://www.baidu.com/?uname=admin
       这里生成的地址是错误的地址,是不可执行的哦

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值