两种包含

包含的概念

在一个项目中会出现多个页面,但是这些页面的头部信息和尾部信息可能是一样的,此时就需要在多个页面中编写相同的代码,这样就出现了代码的重复现象,最好的解决办法是将头部信息和尾部信息定义到独立的文件中,之后在需要的地方包含就行。

在JSP中有两种包含方式:

静态包含:<%@include file="被包含的文件路径"%>
动态包含:<jsp:include page="被包含的文件路径"/>

在这里插入图片描述
在这里插入图片描述

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<!-- 公共的头部信息 -->
	<%@ include file="header.jsp" %>
	<h1>这是主题部分</h1>
	<%@ include file="footer.jsp" %>
</body>
</html>

在这里插入图片描述
以上的程序设计到了三个JSP页面,那么会转换成多少个*.Java文件呢?
在这里插入图片描述
发现了使用静态包含最终生成一个*.class文件,证明了在编译之前先将需要导入的文件包含进来之后成为一个页面再进行转换,所有最终编译出一个*.class

观察动态包含

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<!-- 公共的头部信息 -->
	<jsp:include page="header.jsp" />
	<h1>这是主题部分</h1>
	<jsp:include page="footer.jsp" />
</body>
</html>

在这里插入图片描述
在这里插入图片描述
发现使用动态包含生成了三个*.class文件,证明了使用动态包含会将需要导入的文件先编译成独立的*.class文件,再包含到目标页面

JSP页面参数传递

emp.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<!-- 将参数传递给header.jsp页面 -->
	<jsp:include page="header.jsp">		
		<jsp:param value="red" name="color"/>
	</jsp:include>
</body>
</html>

header.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>
		<!-- 在jsp页面输出内容 -->
		<%=request.getParameter("color") %>
		<%
			String color = request.getParameter("color");
			System.out.print(color);
		%>
	</h1>
</body>
</html>

动态包含和静态包含的区别

静态包含:

  • 语法:<%@ include file=“路径”%>

  • 先将需要导入的文件包含之后在编译成一个*.class文件

动态包含:

  • 语法:<jsp:include page=“路径”/>

  • 如果被包含的文件是静态资源,就和静态包含一样

  • 如果包含的是动态资源,则会先将被包含的资源编译成独立的class文件之后在进行包含

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值