什么是包含:
在页面开发的时候,一些代码难免会有重复使用的情况,比如说A页面有一段代码a,B页面和C页面都能用到a这段代码,那么B和C页面就把A页面包含进来,自然的a这段代码也被包含进BC页面了,这样就实现了B、C页面能用到a代码了,避免了重复的书写a代码。
包含的意义:
使用包含操作,可以将一些重复的代码包含进来继续使用。
一般分为如上四个区域。
真正在改变的地方只是具体内容,因为根据不同的用户浏览的不同,那么肯定这上面会存在差别 现在就有两种做法实现以上一种功能
方法一:在没有一个jsp页面中(html),都包含工具栏、头部信息、尾部信息、具体内容
方法二: 将工具栏、头部信息分成各个独立的文件,以后用的时候直接导进来
很明显现在第二种方法会比第一种更好,因为如果采用第一中做法,则很多的代码会出现重复的问题,而如果采用了第二种形式以后修改的时候回很方便
在jsp中如果想实现包含的操作,有两种做法: 静态包含和动态包含
静态包含
先来看一个包含的程序
第一个页面 info.html
<h2><font color="red">info.html</font></h2>
第二个页面 info.jsp
<h2><font color="green"><%="info.jsp"%></font></h2>
第三个页面 baohan.jsp
<%@ page contentType="text/html" pageEncoding="GB2312"%>
<html>
<head>
<title>赵玉强的javaweb实战开发</title>
</head>
<body>
<h1>静态包含操作</h1>
<%@ include file="info.html"%>
<%@ include file="info.jsp"%>
</body>
</html>
运行一下baohan.jsp页面就可以看到info.html和info.jsp页面的内容,说明info.html和info.jsp页面的内容成功包含进了baohan.jsp页面中来了。
但是问题出来了,我们运行后,点击鼠标右键-查看源代码,可以发现静态包含就是 将内容进行了直接的替换,就好比程序中定义的变量一样,会直接将内容导入进来。
动态包含
动态包含的基本语法:
使用<jsp:include>指令可以完成动态包含的操作,与之前的静态包含不同,动态包含语句,可以自动区分被包含的页面时静态还是动态。
动态包含语法:
不传递参数:
<jsp:include page=""/>
传递参数:
<jsp:include page="">
<jsp:param name="参数名称" value="参数内容"/>
</jsp:include>
看一个接受参数的包含程序:
receiver_param.jsp
<%@ page contentType="text/html" pageEncoding="GB2312"%>
<h1>参数一:<%=request.getParameter("name")%></h1> //输出name
<h1>参数二:<%=request.getParameter("info")%></h1> //输出infoincludeDamo.jsp
<%@ page contentType="text/html" pageEncoding="GB2312"%>
<html>
<head>
<title>包含参数传递的包含页面</title>
</head>
<body>
<h1>动态包含操作</h1>
<jsp:include page="receiver_param.jsp"> //将页面包含进来
<jsp:param name="name" value="zhaoyuqiang"/> //对name赋值
<jsp:param name="info" value=">
</jsp:include>
</body>
</html>注意事项:
1. 静态包含和动态包含都属于包含,但是动态包含的操作更容易,因为在开发中难免会出现重复定义变量的问题,所以建议读者一定要多使用动态包含
2 .注意两种包含的区别,静态包含是<%include file=""%>,而动态包含 是<jsp:include page=""/>
3. 一定不要忘记完结。静态包含是没有完结的,而动态包含有完结。注意动态包含两种包含的 完结。<jsp:include page=""/>
和
<jsp:include page="">
</jsp:include>