jsp資源定位問題
相對定位
相對定位,這種方式適合於頁面和資源不再發生變化,在實際開發中,相對定位使用不多。
./03.jsp 當前路徑
./pages/03.jsp 當前路徑下pages下
絕對定位
絕對定位方式是我們編程中使用最爲常用的方式,推薦使用絕對定位。
/表示根路徑
注意:jsp的標籤和指令中,默認已經加了上下文路徑(爲了編程方便)。
html:在實際開發中,不建議直接寫上下文路徑,建議使用api自動獲取上下文。
jsp不會爲html自動加入上下文路徑,所以說需要web開發,那麼在所有html標籤中,進行資源引入的時候,建議使用絕對路徑引入,同時使用href="<%=request.getContextPath()%>/pages/02.jsp"生成上下文路徑。
jsp的靜態包含和動態包含
公共部分,一樣的部分代碼抽取出來,作爲一個獨立的部分,導入需要的地方。
1、靜態包含
使用jsp的include指令完成
<%@ include file="/common/top.jsp" %>
靜態包含,會把需要導入的直接導入頁面、需要導入的頁面會被作爲頁面的一部分直接寫入到頁面裏。
2、動態包含
動態包含,僅僅是引入需要的資源,兩者還是分離的。
<jsp:include page="/common/top.jsp"></jsp:include>
注意:在實際開發中,動態包含使用更多,因爲定義變量不會衝突。但是如果當權限判斷,登錄判斷等需要跳轉時,建議使用靜態包含。
公共部分
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<ul style="color: red;">
<li><a href="#">首頁</a></li>
<li><a href="#">登錄</a></li>
<li><a href="#">註冊</a></li>
<li><a href="#">註銷</a></li>
<li><a href="#">訂單</a></li>
</ul>
列表部分
<%@ 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="/common/top.jsp" %> --%>
<jsp:include page="/common/top.jsp"></jsp:include>
<h1>商品列表頁面</h1>
<%-- <%
String name="lilei";
%>
--%>
</body>
</html>
執行結果