java web访问路径_Java Web中资源的访问路径

在web应用中,以“/”开头的是绝对路径,不以“/”开头的是相对路径。

在服务器端,通常都使用绝对路径。例如web.xml、struts.xml、servlet等的访问路径都是以“/”开始。

服务器端的“/”等同于:http://localhost:8080/day01/。(day01为工程名)

在客户端,可使用绝对路径,也可使用相对路径。例如html、jsp、css、javascript中。

但是客户端的绝对路径与服务器端的绝对路径中的“/”代表的意思是不同的。

客户端的“/”等同于:http://localhost:8080/。(它是不带工程名的)

比如:这里有一个web工程:day01,在工程根目录下有两个页面:1.jsp和2.jsp。

1.jsp中有一个超链接:点击跳转到2.jsp,我们在地址栏输入:http://localhost:8080/day01/1.jsp即可

访问1.jsp,然后点击超链接后提示错误404,找不到页面。这是由于我们点击超链接后的访问地址是这样的:http://localhost:8080/2.jsp

所以提示找不到。超链接改成这样就可以了:点击跳转

如果使用相对路径是怎样的呢?

比如:这里有一个web工程:day01,在工程根目录下有一个页面:1.jsp,同时有一个目录:jsp,jsp目录下有一个目录:menu,menu目录下有一个页面:2.jsp。我们在地址栏输入: http://localhost:8080/day01/jsp/menu/2.jsp 可访问到2.jsp。

在2.jsp中有一个超链接,点击可跳转到1.jsp。假如这个超链接是这样的:点击跳转到1.jsp,点击后提示错误404,找不到页面。因为这里使用了相对路径(相对与当前页面),点击超链接后的访问路径是这样的:http://localhost:8080/day01/jsp/menu/1.jsp,所以提示找不到。改成这样就可以了:点击跳转到1.jsp。(“..”代表当前目录的上一级目录)

可以看出,客户端使用相对路径非常麻烦,需要考虑当前页面的位置,所以在客户端我们也统一使用绝对路径。

但是客户端的绝对路径中都要带着工程名,是写死的,假如有一天工程名修改了,所有页面中的超链接都要改,工作量太大。

所以这里的工程名不能写死,要动态获取。改成这样就可以了:/1.jsp”>点击跳转到1.jsp

request.getContextPath()就是获取工程名:/day01 (注意:这种方式只适用于JSP,html因为是静态页面不能写java代码,所以只能将工程名写死!)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值