jsp页面中include的两种使用方法
- include有两种用法
<%@ include file="文件的绝对路径或者相对路径"%>
<jsp:include page="被包含文件的路径 "/>
或<jsp:param name="参数名称" value="参数值"/>
- 前者是指令元素、后者是动作元素
- 下面我们一一了解下
1.
- 第一种
<%@ include file=” ”%>
指令元素
- 首先看下我们的header.jsp文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<title>简单登陆页面</title>
<img id="titleImg" src="./images/title.png"><br>
<a href="">首页</a>
<a href="">下载</a>
<a href="">注册</a>
<a href="">排行榜</a>
<a href="">关于</a><br>
- 内容任意,这边我简单举例,下面也是一样
- 这边要注意的是,被并入的文件不需要将
<html><head></head></html>
等标记写上,系统最后会自动补上,如果加了就重复了。 - footer.jsp文件也是一样
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<h6>版权所有©right;XQS</h6>
- 然后我们只要在index.jsp中输入以下代码,就可以完成合并
<html>
<%@include file="header.jsp" %>
<h2>Hello world!50</h2>
<%@include file="footer.jsp" %>
</html>
-
如果我们在index.jsp中定义一个数据
-
然后在我们的header.jsp与footer.jsp中获取,再看下页面效果
- 可以看到,是可以获取的。当然也可以使用
<jsp:param name="paramName" value="paramValue" />
来传递参数 - 但是还有一种情况如果是下面的情况,结果就不同了
- 如果是这样写就会报错,因为
=
为赋值符号,在运行时才赋值,file
接收不到值
2.
- 第二种
<jsp:include page='""/>
动作元素 - 现在我们代码改一下
<%@ page contentType="text/html;charset=UTF-8" language="java" errorPage="errorPage.jsp"%>
<html>
<%
int i = 1;
String footerPage = "footer.jsp";
%>
<%@include file="header.jsp" %>
<h2>Hello world!50</h2>
<jsp:include page="footer.jsp"/>
</html>
-
可以看到动作元素也是满足我们的需求的
-
现在如果我们在footer.jsp中引用
i
呢
-
可以看到答案是不行的
-
那么在指令元素中出错的
<%@include file="<%=footerPage%>" %>
用动作试一下呢
-
成功了,动作指令是在运行时起作用,运行时已经赋值成功
区别
一、执行时间不同:
- 指令元素是在翻译阶段执行
- 动作元素在请求处理阶段执行
二、引入内容的不同:
- 指令一般是引入静态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起.
- 动作一般是引入执行页面例如:消息模块经常变动的模块,不同的servlet