一. 前言
一个网站的很多页面,都会有一些固定的区域是重复的,比如网站的logo或者底部的版权信息等等。在网站设计的时候,我们一般会将这些重复的区域写成一个个的单独的文件,哪个网页需要,就在哪个网页导入即可。导入又分为静态导入和动态导入。
二. 静态导入
使用include指令可以完成页面的静态的导入,比如将logo.jsp和bottom.jsp导入index.jsp:
index.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %> <!DOCTYPE html> <html> <head> <title>Title</title> </head> <body> <%@ include file="logo.jsp"%> <p>网站内容</p> <%@ include file="bottom.jsp"%> </body> </html>
logo.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %> <!DOCTYPE html> <html> <head> <title>Title</title> </head> <body> <img src="https://zhangjia.pro/wp-content/uploads/2018/12/zhangjialogo.png" alt="logo"> </body> </html>
bottom.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %> <!DOCTYPE html> <html> <head> <title>Title</title> </head> <body> <p> CopyRight 2017-2019 张甲博客 </p> </body> </html>
三. 动态导入
使用jsp:include动作进行动态导入,动态导入可以使用jsp:param向被导入页面传参,而静态导入不可以。
index.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %> <!DOCTYPE html> <html> <head> <title>Title</title> </head> <body> <jsp:include page="logo.jsp" /> <p>网站内容</p> <jsp:include page="bottom.jsp"> <jsp:param name="url" value="zhangjia"/> </jsp:include> <%-- 传参的话,就要加结束标签,而且这个注释不能加入到jsp:include标签中--%> </body> </html>
bottom.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %> <!DOCTYPE html> <html> <head> <title>Title</title> </head> <body> <p> CopyRight 2017-2019 张甲博客 </p> <% out.print(request.getParameter("url")); %> </body> </html>
注意,如果直接访问bottom.jsp,request获取的是null,但是打开idnex.jsp,因为index.jsp里面包括了bottom.jsp,所以index.jsp里面会输出url的value值,即zhangjia
请登录之后再进行评论