一、静态引入和动态引入
1、静态引入
使用include指令:
使用静态引入最终执行的是main.jsp,即jsp汇总后的总的jsp,将总的jsp文件转译为Servlet文件。
<%@include file="head.jsp"%>
如:
<%@ page contentType="text/html;charset=UTF-8" language="java"%> <html> <head> <title>Title</title> </head> <body> <h3>我是include.jsp</h3> <h5>JSP:<%@include file="include-jsp.jsp"%></h5> </body> </html>
优点:
使用静态引入方便了jsp页面的维护,便于修改。
速度快。
缺点:
当前jsp文件和被引入的jsp文件存在同名冲突的隐患
2、动态引入
(1)动态引入:<jsp:include page="相对路径"></jsp:include>,是在jsp页面执行的引入方式:
优点:允许当前页面与引入的文件有同名的变量。
降低冗余,便于维护。
(2)不带参数的动态引入:
创建一个页面引入另一个页面:
<%@ page contentType="text/html;charset=UTF-8" language="java" errorPage="error.jsp"%> <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Insert title here</title> </head> <body> <jsp:include page="2.jsp"></jsp:include> </body> </html>
创建被引入的页面:
<%@ page language="java" contentType="text/html;charset=UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Insert title here</title> </head> <body> <h3>我是被包含的jsp页面!!</h3> </body> </html>
(3)带参数的动态引入:
创建一个页面包含另外一个页面:
<%@ page contentType="text/html;charset=UTF-8" language="java" errorPage="error.jsp"%> <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Insert title here</title> </head> <body> <jsp:include page="2.jsp"> <jsp:param value="zao shang hao!" name="nihao"/> </jsp:include> </body> </html>
创建被包含的页面:
<%@ page language="java" contentType="text/html;charset=UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Insert title here</title> </head> <body> <h3>我是被包含的jsp页面!!</h3> <% String str=request.getParameter("nihao"); %> <%=str%> </body> </html>
二、相对路径与绝对路径
1、相对路径实现对jsp页面的访问
相对路径:即从起点到目的地经过的全部路径。
目录结构:
(1)由index访问a目录下的b目录下的b.jsp:
<body bgcolor="#7fffd4"> <center> <h3>我是index.jsp</h3> <a href="a/b/b.jsp">b.jsp</a> </center> </body>
(2)由b.jsp访问index.jsp:
<body bgcolor="aqua"> <h3>我是b.jsp.</h3> <a href="../../index.jsp">index.jsp</a> </body>
从上面的演示可以看出,利用相对路径访问资源存在以下不足:
a、资源的位置不能随意更改。
b、跳出操作比较麻烦。
2、绝对路径 /虚拟项目名/服务器资源:
其中第一个“/”代表服务器的根目录,相当于:localhost:8080。
index.jsp
<center> <h3>我是index.jsp</h3> <a href="/JspDemo1_war_exploded/a/b/b.jsp">b.jsp</a> </center>
b.jsp:
<body bgcolor="aqua"> <h3>我是b.jsp.</h3> <a href="/JspDemo1_war_exploded/index.jsp">index.jsp</a> </body>