web后台--2.路径问题



参看访问路径:https://www.cnblogs.com/zhangyinhua/p/7662334.html

 

1      目录

1.1  根目录和前端根路径

在web-inf内的文件用相对路径,使用绝对路径也访问不了,因为web-inf是私有的

         访问webapp下建议使用${path}或/


参看博客:https://blog.csdn.net/tomcat_2014/article/details/47780241

其中/ 不是代表项目名称,是代表项目存放的路径。你的项目放在什么目录下,他就代表什么目录。

1.2  后台访问路径

basePath


2      路径

2.1  绝对路径

绝对路径:包括协议名称、主机地址、端口、web项目名称等的完整请求路径。request.getContextPath()拿到的是你的web项目的根路径,就是webRoot。
绝对路径-以Web站点根目录为参考基础的目录路径。之所以称为绝对,意指当所有网页引用同一个文件时,所使用的路径都是一样的。

         jsp页面:一般path中<a> ,form , css路径,js/jQuery路径


2.2  相对路径

相对路径:不需要协议名、主机地址、端口、web项目名称,只需要请求的路径


什么都不写就是:8080端口 + 所在目录

 

2.3  注意

相对路径的“/”和绝对路径的(contextPath)等同的

 

3      jsp页面

    解决办法非常简单,统一使用绝对路径

3.1  项目绝对路径(根目录)



1.在jsp中用request.getContextPath方式来拿到webapp的路径
<%String context = request.getContextPath(); %>

2.获得本页当前路径      ${pageContext.request.contextPath}
<link href="${pageContext.request.contextPath}/css/style.css" rel=stylesheet> 

3.el
<c:set value="${pageContext.request.contextPath}" var="path" scope="page"/>
${path} 

3.2  绝对路径(访问完整路径)



指定basePath

<%
String contextPath = request.getContextPath();
String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+contextPath;
%>

1.指定所有路径
<base href="<%=basePath%>" />
 
2.指定js路径
var contextPath = '<%=contextPath %>';
var bashPath = '<%=basePath %>'; 

4      Servlet(了解)

4.1  项目绝对路径(根目录)

不过没啥用,访问不了web-inf下的东西

         一般重定向都是重定向到一个servlet,但是在过滤器(比如登录拦截)有些娃儿偷懒,会直接重定向到index.jsp,这个时候就需要使用绝对路径。

         获得绝对路径:requsest.getContextPath()+ “/index.jsp”

 

5      Ajax的url路径

5.1  项目绝对路径(根目录) 和绝对路径(访问完整路径)

包括协议名称、主机地址、端口、web项目名称等的完整请求路径。

 

5.2  相对路径(根目录)和和项目绝对路径(根目录)

如果请求路径以根路径开头,则无论什么ajax在什么页面,该请求都是相对于服务器的根路径,最后的请求路径都是:http://localhost:8080/yjxt/

原因:以"/"开头,是表示该请求基于从服务器的根路径,即不是相对于html的路径。


 

5.3  示列:不以根路径开头的指向(常见)


假如请求在A页面,最终的请求路径是:http://localhost:8080/ yjxt /request/ajaxtest。

构成:8080端口 + 所在目录+ ajax的url

原因:a.html页面对应的路径是"/yjxt/",所以将url跟在这个路径下就是最终的请求路径。

 

6      Springmvc

6.1  项目绝对路径(根目录)和绝对路径(访问完整路径)

 

7     Js结合vue

         basePath项目绝对路径(根目录)和绝对路径(访问完整路径);

contextPath:相对路径(根目录)和和项目绝对路径(根目录)

 

 

getContextPath: function() {
    var local = document.location;
    var contextPath = "/" + local.pathname.split('/')[1];
    var basePath = local.protocol + "//" + local.host + "/"+ contextPath;
    this.contextPath = contextPath;//项目路径
    this.basePath = basePath;//项目全路径
},

 

 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值