问答详情
源自:6-1 web层课程总结

老师我restful有问题访问第一次资源后再访问第二次其他资源路径,第一次资源路径会追加第二次资源路径前面导致404?

先看图,说不太清楚http://img.mukewang.com/5987029b0001589f03400066.jpg

这就是实现计时的那个url,访问后会出现这个

http://img.mukewang.com/598702d900014f9d06330049.jpg

项目名会丢失

我加了这个基础路径${pageContext.request.contextPath },访问时会把seckill/{seckillId}/追加到前面因为前一次访问的是秒杀详情路径seckill/{seckillId}/detail,又会出现这个错误

http://img.mukewang.com/598704070001fbbe06190122.jpg

下面是浏览器加载的路径

http://img.mukewang.com/5987042b0001e45103480351.jpg

头都大了,怎么改都404,我猜测和加载前一次资源,路径没有消失有关

提问者:慕粉4211572 2017-08-06 19:58

个回答

  • 攻城狮Flion
    2017-11-03 16:49:42

    使用Post请求的时候 会追加,使用get就不会追加,我也是同样的错误,我在配置中省略了项目名曾,contraoller里,将{seckillID} 追加了两次,或者直接把sekillId那一项删了,但如果都不变动,我也在找原因,应该post请求机制的时候,自己跟加前缀,很头痛

  • 我大概成仙了
    2017-08-08 20:19:21

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

    使用<%=basePath%>就不会错了


    还有一个小知识,就是第一个“/”表示的是根路径,你有项目名的情况下第一个加/就要注意了!如果开头不加/代表相对路径,就是在上层的同级目录再跟你写的路径