web应用路径问题

1、绝对路径

绝对路径:以 “ ” 开头的路径,是完整的路径。

在绝对路径中, “ / ” 的含义有两种解释:

  (1)如果是服务器端解析, “ / ” 代表相对于当前web应用的绝对路径,即:协议名://服务器名(主机地址):端口号/项目名/,例如:http://localhost:8080/MyTest/。

  (2)如果是浏览器端解析(出现在地址栏里的路径), “ / ” 代表相对于当前服务器的绝对路径,即:协议名://服务器名(主机地址):端口号/,例如:http://localhost:8080/。

常见的两种绝对路径的例子就是转发重定向

转发:当浏览器向服务器发送请求的时候,服务器自己不处理,而是调用其他的web资源进行处理。
重定向:当浏览器向服务器发送请求的时候,服务器返回给浏览器一个特殊的响应,这个特殊的响应告诉浏览器再向另一个地址发送一个请求。
转发和重定向的区别:发生在浏览器还是服务器浏览器的请求次数浏览器地址栏是否发生变化浏览器能否感知到
转发[request]发生在服务器端1不发生变化感知不到
重定向[response]发生在浏览器端2发生变化能感知到

 

 

 

 

2、相对路径

相对路径:不以 “ / ” 开头的路径,是相对于当前web资源目录的路径。

(相对路径的写法参考博文:HTML相对路径写法) 

3、举例

 假设在当前动态web项目MyTest中,项目根目录webContent下有两个页面src.html和des.html。

src.html中,通过超链接访问项目中的Servlet,此时a标签的地址由浏览器端解析,路径的第一个 “ / ” 代表http://localhost:8080/,如果直接写 " /MyServlet " 就会报404错误。

<a href="/MyTest/MyServlet">主页</a><!-- /MyTest/MyServlet等价于http://llocalhost:8080/MyTest/MyServlet -->

在MyServlet中做如下处理,将请求转发到des.html做处理,此时转发器中的地址由服务器解析,路径的第一个 “ / ” 代表http://localhost:8080/MyTest/。

如果是重定向,重定向中的地址由浏览器解析,路径的第一个 “ / ” 代表http://localhost:8080/,如果直接写 " /des.html " 就会报404错误。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.getRequestDispatcher("/des.html").forward(request, response); //转发   /des.html 等价于 http://localhost:8080/MyTest/des.html
//    response.sendRedirect("/MyTest/des.html");   //重定向   /MyTest/des.html 等价于 http://localhost:8080/MyTest/des.html
    }

转自:web应用路径问题(相对路径,绝对路径,动态获取路径)

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值