JAVA WEB中的相对路径和绝对路径

最近项目中,遇到相对路径和绝对路径的问题,参考了一些博文,根据自己的理解整理了一下,今后如果有更深刻的理解,可另行修改。

前端
-JSP跳转

1.相对跳转

和当前uri有关,比如当前地址为:

localhost:8080/test/

点击前端链接以后 <a href="test.jsp"/>

地址变为:

localhost:8080/test/test.jsp

相当于将地址栏中地址最后一个"/"后面的内容,换成href的内容,组合成新的地址。

注:href以"/"开头,是从服务器的根目录开始的路径,这将不包括项目名

如:<a href="/test.jsp"/>

地址变为:

localhost:8080/test.jsp

2.绝对跳转

<a href="<%=basePath%>test.jsp"/>

地址变为:

<a href="/test.jsp"/>

<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
注:依次获取协议名、服务器名、端口号和项目名


此外,绝对地址不能直接访问WEB-INF下的jsp页面

如果jsp页面放在WebContent下,可直接<%=basePath%>+xxx.jsp访问

如果jsp页面放在WEB-INF下,则需要通过springmvc、struts2等进行转发,比如:

<a href="<%=basePath%>test.jsp"/>

@RequestMapping("/test")
public String getTest() {
       return "test/test";
}
-action跳转

1.相对跳转

与jsp跳转类似,比如ajax请求中:

../../xxx/xxx.action

2.绝对跳转

与jsp跳转类似

后端
-jsp跳转

1.相对跳转

@RequestMapping("/")
public String getIndex() {
       return "WEB-INF/views/index.jsp";
}
不以"/"开头,是相对路径,根据当前目录进行跳转

2.绝对跳转

@RequestMapping("/")
public String getIndex() {
       return "/WEB-INF/views/index.jsp";
}
以"/"开头,是绝对路径,从 项目根目录 开始的路径
-action跳转

1.相对跳转

与jsp跳转类似

2.绝对跳转

与jsp跳转类似


总结:

相对跳转:修改最后一个"/"后面的内容,需要考虑namespace,容易出错。

绝对跳转:使用已经配置好的basePath(前端)或“/”(后端),从项目根目录下开始写路径,建议使用。






  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值