开发者社区> 科技小先锋> 正文

JSP的基本语法之include指令与<jsp:include>动作标识的区别

简介:
+关注继续查看

include指令和<jsp:include>动作标识都可以用来包含文件,比如要在JSP页面中显示大量的纯文本,可以将定些文本文字写入静态文件中(比如记事本),然后通过include指令或者动作标识包含到该JSP页面中,这样可以让JSP页面更简洁。

举一个简单例子用来包含网站的banner和版权信息栏。

我在51cto这截了三张图片。分别命名

banner.jpg

wKiom1LTlSvBM4arAAFy9QvOwl4491.jpg

center.jpg

wKioL1LTlSHDxhuYAAHLYddwwis350.jpg

copyright.jpg

wKiom1LTlS6CquH8AACNlY8r1MU795.jpg



include指令的应用

(1)编写一个名称为top.jsp的文件,用来放置网站的banner信息

1
2
<%@ page pageEncoding="GB18030"%>
<img src="images/banner.jpg">

(2)编写一个名称为copyright.jsp的文件,用于放置网站的版权信息

1
2
3
4
5
6
7
8
9
10
11
12
<%@ page pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
String copyright="";
%>
<!--&nbsp;All Copyright&copy;2014 校来校网有限公司-->
<table width="778"height="61"border="0"cellpadding="0"cellspacing="0"background="images/copyright.jpg">
  <tr>
                                                                                                                                                                                                                                                                                           
    <td><%=copyright %></td>
  </tr>
</table>

(3)编写一个名称为index.jsp的文件,在该页面中包括top.jsp和copyright.jsp文件,从而实现一个完整的界面:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>使用文件包含include指令</title>
</head>
<body style="margin:0px;">
<%@ include file="top.jsp" %>
<table width="778" height="279"border="0"cellpadding="0"cellspacing="0"background="images/center.jpg">
<tr>
<td>&nbsp;</td>
</tr>
</table>
<%@ include file="copyright.jsp"%>
</body>
</html>

运行一下,可以看到显示界面wKioL1LTly2gLj9QAAUhlF6YS0U160.jpg

技巧:在应用include指令进行文件包含时,为了使整个页面的层次结构不发生冲突,建议在被包含页面中将<html><body>等标记删除


<jsp:include>动作标识的应用

只需将index.jsp代码修改一下即可.将include指令的<%@include file="xx.jsp"%>修改为动作标识的<jsp:include page="xx.jsp"/>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>使用&lt;jsp:include&gt;动作标识</title>
</head>
<body style="margin:0px;">
<jsp:include page="top.jsp" />
<table width="778" height="279"border="0"cellpadding="0"cellspacing="0"background="images/center.jpg">
<tr>
<td>&nbsp;</td>
</tr>
</table>
<jsp:include page="copyright.jsp"/>
</body>
</html>

include指令与<jsp:include>动作标识的区别

(1)include指令通过file属性指定被包含的文件,并且file属性不支持任何表达式;<jsp:include>动作标识通过page属性指定被包含文件,支持JSP表达式

(2)使用include指令时,被包含文件内容原封不动地插入到包含页中,然后JSP编译器再将合成后的文件最终编译成一个java文件;使用<jsp:include>动作标识包含文件时,当该标识被执行时,程序会请求转发(不是请求重定向)到被包含的页面,并将执行结果输出到浏览器中,然后返回包含页继续执行后面的代码。

(3)include指令包含文件时,由于被包含文件最终生成一个文件,所以在被包含文件、包含文件中不能有重名的变量或方法;而在应用动作标识包含文件时,由于是单独编译,所以被包含文件、包含文件中重名的变量和方法是不冲突的。



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


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

相关文章
JSP include指令和include动作的区别
JSP include指令和include动作的区别
25 0
mysql 数据库引擎 MyISAM InnoDB 大比拼 区别
先给上自己的民间说法,官方英文说法还在翻译解读中,稍后跟上 Mysql 数据库中,最常用的两种引擎是innordb和myisam。Innordb的功能要比myiasm强大很多,但是innordb的性能要比myisam差很多,如果你的网站只是做简单的查询,更新,删除,那么用myiasm是最好的选择。
1110 0
理解C语言——从小菜到大神的晋级之路(3)——C源程序的基本结构与调试方法
    本期视频点击这里        在上一篇中,我们进行了Visual Studio 2013的安装以及第一个demo程序“HelloWorld”的建立。
1053 0
Servlet第六篇【Session介绍、API、生命周期、应用、与Cookie区别】
什么是Session Session 是另一种记录浏览器状态的机制。不同的是Cookie保存在浏览器中,Session保存在服务器中。用户使用浏览器访问服务器的时候,服务器把用户的信息以某种的形式记录在服务器,这就是Session 如果说Cookie是检查用户身上的”通行证“来确认用户的身份,那么Session就是通过检查服务器上的”客户明细表“来确认用户的身份的。
1274 0
【js 方法】js 页面刷新location.reload和location.replace的区别 【转】
【转】:http://zccst.iteye.com/blog/2162658   reload 方法,该方法强迫浏览器刷新当前页面。 语法: location.reload([bForceGet]) 参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页。
887 0
开放平台密钥, mapi网关产品密钥,老版wap支付密钥的区别
说明:    区别在于网关,请求方式不同,支持的密钥有区别    如何判断自己使用的是appid请求还是pid(partner)请求 【点击了解】  1.开放平台密钥    1)appid请求方式:appid以年份开头(如下图)       2)请求网关为:https://openapi.
3022 0
js之apply call bind 区别
js之apply call bind 区别
4858 0
6965
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载