一、静态包含

<%@ include file=”” > 就是静态包含
file属性指定你要包含的jsp页面的路径
地址中第一个斜杠表示为http://ip:port/工程路径 映射到代码的web目录
实质:就是把被包含的jsp页面的代码拷贝到包含的位置执行输出

main.jsp

  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>Title</title>
  5. </head>
  6. <body>
  7. 头部信息<br>
  8. 主体信息<br>
  9. <%--
  10. <%@ include file="" 就是静态包含
  11. file属性指定你要包含的jsp页面的路径
  12. 地址中第一个斜杠表示为http://ip:port/工程路径 映射到代码的web目录
  13. --%>
  14. <%@include file="/include/footer.jsp"%>
  15. </body>
  16. </html>

footer.jsp

  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>Title</title>
  5. </head>
  6. <body>
  7. 页脚信息<br>
  8. </body>
  9. </html>

二、动态包含

  1. <jsp:include page=""></jsp:include> 动态包含<br /> page属性是指你要包含的jsp页面的路径<br /> 动态包含可以像静态包含一样,把被包含的内容执行输出到包含的位置<br /> 特点:<br /> 1.动态包含会把被包含的jsp页面也翻译成java代码<br /> 2.动态包含底层代码使用一个代码调用被包含的jsp页面执行输出<br /> 3.动态包含可以传递参数:

main.jsp

  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>Title</title>
  5. </head>
  6. <body>
  7. 头部信息<br>
  8. 主体信息<br>
  9. <jsp:include page="/include/footer.jsp">
  10. <jsp:param name="userName" value="wyb"/>
  11. </jsp:include>
  12. </body>
  13. </html>

foot.jsp

  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>Title</title>
  5. </head>
  6. <body>
  7. 页脚信息<br>
  8. <%=request.getParameter("userName")%>
  9. </body>
  10. </html>

jsp动态包含底层原理图

jsp动态包含原理.png
但是,大多数情况使用静态包含就可以了

三、请求转发

方式一

方式二 <% request.getRequestDispatcher(“/js/scope2.jsp”).forward(request,response); %>

两个没有区别