路径
相对路径
不是以"/"开始的路径名称,开发时不使用。
绝对路径
以"/"开始的路径名称
开发中的路径问题
第一种方案在JSP页面上使用<base>标记指定路径位置
base标签的作用是:设置当前页面的所有相对路径的起始位置。
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<base href="<%=basePath%>">
第二种方案在路径位置直接使用绝对路径
绝对路径是以“/”开始的路径。“/”表示的位置在哪?
1、浏览器使用时“/”,表示的是服务器路径。在浏览器使用绝对路径时“/”后面加站点名称。
<a href="/站点名称/资源名称"></a>
2、服务器使用时“/”,表示的就是站点根目录。在服务器使用绝对路笃时“/”后面直接写资源名称。
<jsp:forward page="/资源名称"/> </jsp:forward>
当使用页面导航时,
- 客户端重定向:“/站点名/资源名称”
- 服务器端转发:“/资源名称”
获取绝对路径方法
1、在JSP页面上使用EL表达式获得站点根目录名称
${pageContext.request.contextPath}
<img alt="aaa" src="${pageContext.request.contextPath }/imgs/1.jpg">
2、在Servlet中使用request对象的方法获得站点根目录名称
request.getContextPath();
response.sendRedirect(request.getContextPath()+"/goods/show.jsp");
总结
response.sendRedirect("/站点名称/资源名称");
request.getRequestDispatcher("/资源名称").forward(request,response);
this.getServletContext().getRealPath("/资源名称");
this.getServletContext().getResourceAsStream("/资源名称");
<a href="/站点名称/资源名称"></a>
<form action="/站点名称/资源名称"></form>
浏览器使用时,"/"就相当于web应用
服务器使用时,"/"就相当于网站
"/"是用于获取服务器的资源,"\"是用于获取硬盘的资源