JSP基本语法--包含指令<%@include file="路径"%> <jsp:include page>
包含指令,真正改变的地方只有具体内容处:
方法1: 在每个jsp页面(HTML)都包含工具栏,头部信息,尾部信息,具体内容
方法2: 将工具栏,头部信息,尾部信息都分成各个独立的文件,使用的时候直接导入进来
方法2比1更好,如果采用第一种做法的话,很多代码会出现重复的问题。第二种形式的话,修改的时候很方便,因为是导入进来的。

包含分为静态包含和动态包含。
- 静态包含
方式: <%@include file="路径"%>,很类似于<%@page=%>命令
info.html
<h2><font color="red">info.htm</font></h2>
info.jsp:
<h2><font color="green"><%="info.jsp"%></font></h2>
info.inc:
<h2><font color="blue">info.inc</font></h2>
include_demo01.jsp:
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培训</title></head>
<body>
<h1>静态包含操作</h1>
<%@ include file="info.htm"%>
<%@ include file="info.jsp"%>
<%@ include file="info.inc"%>
</body>
</html>
结果如下:

3个文件都被包含进来,就是将内容直接替换,好比程序中的变量一样。
- 动态包含:
方式:
<jsp:include page=“{要完结的路径|<%=表达式%>}” flush="true/false">
<jsp:param name="参数名称" value="参数内容"/>
</jsp:include>
只要代码以<>出现的jsp代码,都称为标签指令,所有的标签都要完结:
例子:include_demo02.jsp:
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培训</title></head>
<body>
<h1>动态包含操作</h1>
<jsp:include page="info.htm"/>
<jsp:include page="info.jsp"/>
<jsp:include page="info.inc"/>
</body>
</html>
如果使用参数的话先定义一个接收参数的文件:
<%@ page contentType="text/html" pageEncoding="GBK"%>
<h1>参数一:<%=request.getParameter("name")%></h1>
<h1>参数二:<%=request.getParameter("info")%></h1>
再定义一个传递参数的文件:
注意,要传递变量通过表达式完成,而不用out.println()
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培训</title></head>
<body>
<h1>动态包含操作</h1>
<%
String username = "LiXingHua" ;
%>
<jsp:include page="receive_param.jsp">
<jsp:param name="name" value="<%=username%>"/>
<jsp:param name="info" value="www.mldnjava.cn"/>
</jsp:include>
</body>
</html>
现在,有静态包含和动态包含,使用哪种?
看下面的例子:
include.jsp;
<%
int x = 10 ;
%>
<h1>include.jsp -- <%=x%></h1>
下面通过静态包含语句,包含以上文件,并定义一个与之前一样同名的变量:
include_demo04:
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培训</title></head>
<body>
<%
int x = 100 ; // 变量重复
%>
<h1>include_demo04.jsp -- <%=x%></h1>
<%@include file="include.jsp"%>
</body>
</html>
程序运行结果,出现500错误,因为x变量重复了,原因:静态包含的处理原则:
静态包含属于先包含后处理:

动态包含include_demo05.jsp:
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培训</title></head>
<body>
<%
int x = 100 ; // 变量重复
%>
<h1>include_demo04.jsp -- <%=x%></h1>
<jsp:include page="include.jsp"/>
</body>
</html>
结果如下:
并没有发生任何错误,因为动态包含的时候,如果包含动态页面,原则是先处理后包含的方式,包含的是处理的结果。
所以,动态包含操作更容易使用,因为开发中容易发生重复定义变量的问题,所以建议多使用动态包含。

JSP基本语法--包含指令<%@include file="路径"%> <jsp:include page>的更多相关文章
- jsp 中 include指令 用法, <%@ include file="..."%> 和 <jsp:include page="..." flush="true" />的区别?
原文链接https://blog.csdn.net/u012187452/article/details/51779052 1. 什么是jsp 文件? 个人理解. jsp 是一个容器,可以将我们编写 ...
- JSP基本语法总结【1】(jsp工作原理,脚本元素,指令元素,动作元素)
时隔半年,回头对jsp复习整理一下,温故而知新. jsp工作原理: jsp服务器管理jsp页面分两个阶段:转换阶段(translation phase)和执行阶段(execution phase). ...
- <%@ include file="">和<jsp:include file="">区别
<%@include file="a.jsp"%>是在编译时加入,所谓静态,就是在编译的时候将jsp的代码加入进来再编译,之后运行. <jsp:include p ...
- include file与jsp:include 的区别
<%include file="a.jsp"%>静态包含,先加入再编译,就是在编译的时候将a.jsp的代码加入进来在编译,只会生成一个servlet文件,而且不同a ...
- jsp的静态包含与动态包含:<%@ include file="" %>和<jsp:include page=""></jsp:include>区别与分析
<%@ include file="" %>是将文件原封不动的copy进现有的文件中,像是拼接好后,再编译成为servlet运行. <jsp:include pa ...
- Jsp的语法和指令
Jsp的三种注释 前端语言注释:<!-- --> 会被转译,也会被发送,但是不会被浏览器执行 java语言注释: 会被转译,但是不会被servlet执行 Jsp注释:<%-- -- ...
- <%@ include file=""%>与<jsp:include page=""/>两种方式的作用
一.前言 身为一名coder有太多太多的知识点要去学,太多太多的东西要去记.往往一些小细节也就难免疏忽,但悲催的是多数困恼你的bug就是因为这些微不足道的知识点.我们又不是机器人,怎么可能什么都记得了 ...
- 2019/7/18 --1.<%@ include file=""%>与<jsp:include page=""/>两种方式的作用
一.前言 身为一名coder有太多太多的知识点要去学,太多太多的东西要去记.往往一些小细节也就难免疏忽,但悲催的是多数困恼你的bug就是因为这些微不足道的知识点.我们又不是机器人,怎么可能什么都记得了 ...
- <%@ include file=""%>与<jsp:include page=""/>两种方式的作用以及传值
一:使用 1.include指令: 1 <%@include file="文件的绝对路径或者相对路径"%> file属性是必填的(绝对或相对路径),但它不支持 ...
随机推荐
- ensp实战之防火墙安全转发策略
本次实验用防火墙是USG6000V,拓扑图如下: 步骤一: 按上面配好PC1.2.3以及WWW服务器的IP地址.子网掩码以及网关: 步骤二: 进入防火墙的CLI命令模式下,按一下命令配置: 配置各个接 ...
- iOS上传图片详解
iphone中图像通常存储在4个地方[相册.应用程序包.沙盒.Internet],通过这4个源,我们就可以存取应用图片. 相册 iphone的相册包含摄像头胶卷+用户计算机同步的部分照片.用户可以通过 ...
- 用setTimeout实现与setInteval类似的功能
用setTimeout实现与setInteval类似的功能,代码如下: (function(){ var self = arguments.callee; //获取函数本身 count++; if ( ...
- JS 点击复制Copy
1.实现点击按钮,复制文本框中的的内容 1 <script type="text/javascript"> 2 function copyUrl2() 3 { 4 va ...
- 处理html页面元素工具类(HtmlAgilityPack.dll)的使用
下载地址:http://htmlagilitypack.codeplex.com/ 1.添加HtmlAgilityPack.dll引用(引用类using HtmlAgilityPack;). 2.简单 ...
- C socket指南
1.介绍 Socket 编程让你沮丧吗?从man pages中很难得到有用的信息吗?你想跟上时代去编Internet相关的程序,但是为你在调用 connect() 前的bind() 的结构而不知所措? ...
- Django剖析
$django-admin startproject mysite 创建一个django新工程 $python manage.py runserver 开启该服务器 $python manage.p ...
- 游戏Demo(持续更新中...)
格斗游戏 主要用于联系Unity的动画系统,并加入了通过检测按键触发不同的技能. WASD控制方向,AD为技能1,SW为技能2,右键跳跃,连续单机普通连招. 本来是要用遮罩实现跑动过程中的攻击动作,但 ...
- 五笔拼音反查精灵 v6.69 绿色版
软件名称:五笔拼音反查精灵 v6.69 绿色版软件语言: 简体中文授权方式: 免费软件应用平台: Win7 / Vista / Win2003 / WinXP / Win2008 软件大小: 197K ...
- js中两个感叹号的原理与用法分析(转载记录没找到原帖)
var foo; alert(!foo);//undifined情况下,一个感叹号返回的是true; alert(!goo);//null情况下,一个感叹号返回的也是true; var o={flag ...