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>
执行结果