Servlet:路径

版权声明:赠人玫瑰,手有余香!本文是小哥哥的原创文章,转载或摘抄时请注明出处。 https://blog.csdn.net/lovecuidong/article/details/88686921

路径

相对路径

不是以"/"开始的路径名称,开发时不使用。

绝对路径

以"/"开始的路径名称

开发中的路径问题

第一种方案在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. 客户端重定向:“/站点名/资源名称”
  2. 服务器端转发:“/资源名称” 

获取绝对路径方法

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应用

服务器使用时,"/"就相当于网站

"/"是用于获取服务器的资源,"\"是用于获取硬盘的资源

猜你喜欢

转载自blog.csdn.net/lovecuidong/article/details/88686921