javaWeb开发中遇到的一些路径问题

1.路径的分类

绝对地址带有协议名称的是绝对地址,比如:http://www.baidu.com 
相对地址没有协议开头的, 例如 user/some.do  , /user/some.do

注:相对地址不能独立使用,必须有一个参考地址。 通过参考地址+相对地址本身才能指定资源。

2.参考地址的使用

1) 在你的页面(html或jsp页面)中的,访问地址不加 "/"

现象:

     假设此时你的地址栏访问的是: http://localhost:8080/ch06_path/index.jsp

分析:

此时,     参考地址(基地址): http://localhost:8080/ch06_path/
                资源: index.jsp

其中:http是协议;localhost是服务器名称;8080是端口号;ch06_path是你项目名称;index.jsp是你项目中的某项资源。

现象:
      若在index.jsp发起 user/some.do请求,访问地址变为  http://localhost:8080/ch06_path/user/some.do。

分析:

        当你的地址 没有斜杠开头,例如 user/some.do , 当你点击链接时, 访问地址是当前页面的参考地址+链接的地址。即,http://localhost:8080/ch06_path/ + user/some.do


     


但用没有"/"的写法会遇到一些问题,比如在index.jsp  访问 user/some.do  , 返回后现在的地址: http://localhost:8080/ch06_path/user/some.do,此时在后台将请求又转发给index.jsp页面。

      http://localhost:8080/ch06_path/user/some.do
      参考地址:   http://localhost:8080/ch06_path/user/
      资源:          some.do

      在index.jsp再次访问 user/some.do ,就变为 http://localhost:8080/ch06_path/user/user/some.do

      解决方案

1.加入${pageContext.request.contextPath};这种写法就变成加”/“了
2.加入一个base标签, 是html语言中的标签。 表示当前页面中访问地址的基地址。你的页面中所有没有“/”开头的地址,都是以base标签中的地址为参考地址,使用base中的地址 + user/some.do 组成访问地址。

第一种写法的问题:

        在每一次写访问路径的时候都有加入${pageContext.request.contextPath},显然很麻烦。

以上问题的解决如下:使用第二种方法

具体使用如下:

        此时,在前端页面中使用不加”/“的写法时,参考地址就是basePath代表的地址,不会再动态改变。

2)在你的页面中的,访问地址加 "/"


      访问的是: http://localhost:8080/ch06_path/index.jsp
      参考地址: http://localhost:8080/ch06_path/
      资源: index.jsp

        点击 /user/some.do, 访问地址变为 http://localhost:8080/user/some.do
        注意,此时参考地址是你的服务器地址, 也就是 http://localhost:8080。显然访问地址变为 http://localhost:8080/user/some.do,此时你的资源不能成功访问。

解决:
        如果你的资源不能访问: 加入${pageContext.request.contextPath},此el表达式是用来获取当前项目的名称的。比如:<a href="${pageContext.request.contextPath}/user/some.do">发起user/some.do的get请求</a> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值