开发者社区> 余二五> 正文

JSP中的include指令

简介:
+关注继续查看

3.4include指令

       一般的网页格式如下:
1
不变
2首部信息(基本不变)
各个频道的具体信息
(此处的信息是会被反复改变的)
3尾部信息(基本不变)
       那么如果要想实现以上的样式的代码,有两种做法:
       · 每一个页面都单独编写123号代码,这样一来代码重复
       · 将这三部分代码单独做成文件,之后在一个整体页面中包含进来

3.4.1<%@include file=""%>

       可以包含任何的文件,可以把任何文件的内容直接包含进来,文件包含的时候不需要后缀。所以此种包含属于静态包含,只关心文件本身的内容。
例如:现在随便建立几个后缀的文件:
1  inc.jsp
<h1>inc.jsp</h1>
2  inc.htm
<h1>inc.htm</h1>
3  inc.inc
<h1>inc.inc</h1>
       那么之后直接使用包含语句将此三个页面包含进来
IncludeDemo01.jsp
<%@include file="inc.htm"%>
<%@include file="inc.jsp"%>
<%@include file="inc.inc"%>
<h1>IncludeDemo01.jsp</h1>

3.4.2<jsp:include page=""/>

       动态包含,动态包含比静态包含多增加了一个判断功能,如果被包含的是动态页面,则按动态的方式进行处理,如果包含的是静态页面,则与之前的<%@include%>的操作形式是一样的。
IncludeDemo02.jsp
<jsp:include page="inc.htm"/>
<jsp:include page="inc.jsp"/>
<jsp:include page="inc.inc"/>
<h1>IncludeDemo02.jsp</h1>
       那么,使用此种包含语句,可以向被包含的页面之中传递参数,只要被包含的页面是动态页面,则就可以通过request.getParameter()直接接收此参数。
Incdemo.jsp
<%-- 这两个参数都由包含页传递过来 --%>
<h1><%=request.getParameter("ref1")%></h1>
<h1><%=request.getParameter("ref2")%></h1>
IncludeDemo03.jsp
<jsp:include page="Incdemo.jsp">
         <jsp:param name="ref1" value="Hello"/>
         <jsp:param name="ref2" value="World"/>
</jsp:include>
<h1>IncludeDemo02.jsp</h1>

3.4.3、两种包含的区别

       两种包含完成的功能都很相似,只是第二种包含中可以传递参数,第一种不能传递参数,除此之外两种包含还有一个最大的差别:
       · <%@include%>:表示把所有的页面的内容包含进来之后一起处理结果
       · <jsp:include/>:如果包含的是静态页面,则处理过程与之前一样,如果是动态页面,则多个页面分别进行处理,之后再把结果包含进来。
1  验证<%@include%>,静态包含
IncludeDemo04.jsp
<%
         int i = 10 ;
%>
<h1>IncludeDemo04.jsp --> <%=i%></h1>
<%@include file="IncludeDemo05.jsp"%>
IncludeDemo05.jsp
<%
         int i = 100 ;
%>
<h1>IncludeDemo05.jsp --> <%=i%></h1>
2  验证<jsp:include>,动态包含
IncludeDemo04.jsp
<jsp:include page="IncludeDemo05.jsp"/>
<%
         int i = 10 ;
%>
<h1>IncludeDemo04.jsp --> <%=i%></h1>
结论:
       两种包含中使用<jsp:include>包含是最方便的,建议只使用此语法。

3.5forward指令

       forward指令的语法与<jsp:include>语法类似,只是完成的是无条件跳转功能。
ForwardDemo01.jsp
<jsp:forward page="ForwardDemo02.jsp"/>
ForwardDemo02.jsp
<h1>Hello World!!!</h1>
       以上程序跳转之后,地址栏并没有任何的改变,但是显示的内容改变了,所以称此种跳转为服务器端跳转指令。
       使用forward指令也可以像include指令那样,直接向跳转的页面传递参数。参数同样是通过<jsp:param>进行设置的,接收参数的时候同样使用request.getParameter()接收。
ForwardDemo03.jsp
<%
         String str = "WORLD" ;
%>
<jsp:forward page="ForwardDemo04.jsp">
         <jsp:param name="ref1" value="HELLO"/>
         <jsp:param name="ref2" value="<%=str%>"/>
</jsp:forward>
ForwardDemo04.jsp
<h1><%=request.getParameter("ref1")%></h1>
<h1><%=request.getParameter("ref2")%></h1>









本文转自 李兴华 51CTO博客,原文链接:http://blog.51cto.com/lixinghua/101381,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
autojs非常见函数1
牙叔教程 简单易懂
5 0
【笔记】用户指南—诊断与优化——性能趋势
本文介绍了PolarDB-X性能趋势的查看方式。 PolarDB-X集成DAS的性能趋势功能,提供计算节点(CN)、存储节点(DN)、GMS节点的监控指标查看能力。同时支持多种查看性能趋势方式,不仅支持性能趋势区间查看,也支持性能趋势对比查看和自定义性能趋势查看。
7 0
jdl
ECS初步使用体验
关于新手的ECS初步使用体验小文章(新手表述粗糙)
3 0
常识普及-C语言和指针的本质
常识普及-C语言和指针的本质
3 0
autojs非常见函数2
autojs非常见函数2
3 0
Mycat实现单库水平分表、按月分表
Mycat实现单库分表,实现按月分表,实现时间戳按月分表
6 0
我所使用的生产 Java 17 启动参数
我所使用的生产 Java 17 启动参数
4 0
BinaryTree|学习笔记
快速学习BinaryTree
5 0
ClassLoader加载|学习笔记
快速学习ClassLoader加载
8 0
+关注
20380
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载