java配置d盘绝对路径_Java中项目的路径不要写相对路径,尽量用绝对路径

问题

今天在将自己代码提交之后,有人提醒报了404错误

我还傻傻的说我这里不报错啊,是不是你那里出问题了

浏览器报404,找到了这一个ajax请求

并且在控制层也能找到对应的响应器,检查了半天却没有发现错误,但是在同事那里就是报404的错误

错误原因及解决方案

后来发现在问题出新的原因是因为url我使用的是相对路径

在idea中打开tomcat configuration

在这里我发现我的Application context选择的是默认值,也就是部署在了服务器的webapp的root路径下,而同事那里在这里设置了值ContextName,那么他的项目就部署在了webapp的ContextName路径下面(有关application context的信息可以点击链接:idea配置application context(web项目的默认访问路径))

因为同事那里给tomcat的添加了虚拟路径,而我这里没有设置

因此我就直接在服务器的根路径下就能访问到“count/subjectCount”,并且项目的访问路径如下图

但是我的同事给容器添加了虚拟路径,ContextName

这时我们就要在访问路径前面提添加"ContextName”,即新的url是“ContextName/count/subjectCount”,并且此时的项目访问路径如下图

这也就是问题出现的的原因,有的人对容器添加了虚拟路径,有的人没有给容器添加虚拟路径,直接放在toot里面了

结论

在这里说明一下,${pageContext.request.contextPath}是JSP取得绝对路径的方法,等价于 。

也就是取出部署的应用程序名或者是当前的项目名称

因此,我们就应该设置访问路径的时候,使用绝对路径进行访问

使用jquery

var url='${pageContext.request.contextPath}'+'/count/subjectCount';

使用jsp的原始方法

String path = request.getContextPath();

String basePath = request.getScheme()+'://'+request.getServerName()+':'+request.getServerPort()+path+'/';

%>

***********

var url=path+'/count/subjectCount';

var url2=basePath+'/count/subjectCount';

***********

在这里basePath获取了完整的路径和端口号还有项目的上下文环境。 ,可解决因为修改服务器端口号引起的找不到路径问题。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值