欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java web项目中url路径问题(带不带“/”)

程序员文章站 2022-05-31 11:46:10
...

java web项目中url路径问题(带不带“/”)

刚学习javaweb不久,其中资源日访问路径的问题一直困扰我,一番查阅后,总算是对资源路径问题有了一个更清晰的认识。

javaWeb中访问资源的几种方式

  1. 重定向
  2. 转发
  3. 超链接
  4. 表单提交

除了请求转发,其他的几种方法都是浏览器发起的.

路径开头直接“/”表示当前路径
浏览器端 和 服务器端 发起请求的当前路径不相同

1、浏览器发起的请求中的“/”表示“Tomcat/webapps”目录下,比如你在浏览器中输入“localhost:8080/TaoBao”中的“/”就是表示Tomcat/webapps,调用资源的时候需要写/TaoBao/index.jsp

2、而服务器发起的请求中“/”表示“Tomcat/webapps/TaoBao”的目录,调用的时候写/index.jsp

总结:

  • 浏览器端调用资源,需要加上项目名,服务器端调用资源不需要加项目名
  • “/” 代表参考路径为 :localhost:8080/项目名(服务器发起请求) 或 localhost:8080/ (浏览发起请求)

那么不加 “/” 又是什么意思呢?

如果不加 “/” 表示以当前资源的路径为参考路径

  • 之前解释了 “/” 在不同请求下代表不同的参考路径,这里不加“/” 就是表示默认以当前的资源路径为参考路径。
  • 所以如果不加 “/”则,在写资源路径时需要考虑当前参考路径的位置,很不方便

前端页面可以使用 < base > 标签来解决不加 “/” 时路径的的问题

base标签表示当前资源不加 “/” 时,默认的参考路径

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

<base href="<%=basePath%>">

这样就可以将不加“/”时的默认路径设置为项目的根路径,这样在请求其他资源时就可以不写“/”

<script type="text/javascript" src="jquery/jquery-1.11.1-min.js"></script>

参考:https://blog.csdn.net/Mart1nn/article/details/82899835

相关标签: javaweb java