包含指令包括靜態(tài)包含和動態(tài)包含
靜態(tài)包含
<%@ include file="要包含的文件路徑"%>
屬于先包含然后再進行集中編譯麦射。在<body></body>標簽里面泪勒。包含不管后綴名是什么闪盔,都會將內容直接包含并顯示瑟俭。假如我們現(xiàn)在一個a.jsp要包含一個b.jsp
b.jsp里面不要包含<html></html><body></body><head></head>,在一個完整的頁面中违寞,如果重復出現(xiàn)這些贞瞒,則可能會出現(xiàn)顯示錯誤。例如b.jsp可以這樣寫
<h2><font color="green">
<%="info.jsp"%>
</font></h2>
動態(tài)包含
<jsp:include page="要包含的文件路徑">
</jsp:include>
<jsp:include>屬于標簽指令趁曼,記得要結束記得結束有個include
動態(tài)包含可以傳遞參數(shù)军浆,假如一個a.jsp包含一個b.jsp
a.jsp
<%@ page contentType="text/html" pageEncoding="utf-8"%>
<html>
<head></head>
<body>
<%
String username="ljs";
%>
<h1>動態(tài)包含并傳遞參數(shù)</h1>
<jsp:include page="receive_param.jsp">
<jsp:param name="name" value="<%=username%>"/>
<jsp:param name="info" value="www.ljs.cn"/>
</jsp:include>
</body>
</html>
b.jsp
<%@ page contentType="text/html;charset=utf-8"%>
<h1>參數(shù)一:<%=request.getParameter("name")%></h1>
<h1>參數(shù)二:<%=request.getParameter("info")%></h1>
記住是a把參數(shù)傳遞給了b,但是a有包含了b挡闰,顯示了b的內容乒融。
輸入http://localhost:8888/ljs/a.jsp
但是輸入http://localhost:8888/ljs/b.jsp
建議使用動態(tài)包含因為靜態(tài)包含是先包含后處理,如果在包含頁面和被包含頁面都定義了一個變量x摄悯,他就會報錯赞季,而動態(tài)包含就不會,它是先處理后包含奢驯。
跳轉指令
<jsp:forward page="要跳轉頁面的路徑">
<jsp:forward>
跳轉指令也是可以傳遞參數(shù)申钩,不過是從該頁面?zhèn)鬟f到要跳轉的頁面。假如輸入a.jsp瘪阁,然后跳轉到b.jsp撒遣,顯示b.jsp的內容,可以看到跳轉后但是地址不變管跺,說明是服務器跳轉义黎,服務器根本不知道請求的是什么資源。
a.jsp
<%@ page contentType="text/html;charset=utf-8"%>
<html>
<body>
<%
String ljs = "ljs2";
%>
<h1>跳轉頁</h1>
<jsp:forward page="b.jsp">
<jsp:param name="ljs" value="ljs"/>
<jsp:param name="ljs2" value="<%=ljs%>"/>
</jsp:forward>
</body>
</html>
b.jsp
<%@ page contentType="text/html;charset=utf-8"%>
<html>
<body>
<h1>跳轉后的頁面中進行參數(shù)的接受</h1>
<h2>參數(shù)一:<%=request.getParameter("ljs")%></h2>
<h2>參數(shù)二:<%=request.getParameter("ljs2")%></h2>
</body>
</html>