myeclipse运行jsp文件_[JSP] 07 JSP 路径问题

6c203ee6553ba43a1dd6c6a015009263.png

首先先明确一下下列URL的

假设一个URL是这样的losthost:8080/myservlet/path

服务器根路径:losthost:8080/

项目根路径:losthost:8080/myservlet/

明确了服务器根路径和项目根路径之后,我们就可以开始学习后面的知识了


servlet路径问题

请求转发和重定向的相对路径写法总结:

Servlet重定向jsp

resp

Servlet请求转发jsp

req

服务器根目录

服务器的webapps目录路径 localhost:8080/

项目根目录

服务器的webapps目录下项目路径 localhost:8080/jsp/

注意:

以上两种写法其实都是相对路径,相对路径指的是从当前请求路径查找jsp所经过的路径。

请求转发和重定向的绝对路径写法总结:

重定向:

在重定向中的路径中第一个/表示服务器根目录。

示例:

resp

请求转发:

在请求转发中第一个/表示项目根目录

示例:

tDispatcher

jsp路径问题

精华总结:

  1. 在jsp页面中进行资源之间的跳转时,使用绝对路径 。
  2. 在jsp中路径中的第一个/表示服务器根目录。
  3. 在Myeclipse中创建的jsp页面会自动生成路径处理代码basePath而basePath的值为当前项目 根目录。
  4. request.getSchema()返回的是当前连接使用的协议,一般应用返回的是http、SSL返回的是https;
  5. request.getServerName()返回当前页面所在的服务器的名字;
  6. request.getContextPath()返回当前页面所在的应用的名字。

问题:

在jsp页面中进行资源之间的跳转时,如果书写的是相对路径这样会造成如果当前文件的路径发生变更,从当前路径查找资源的相对路径都要重新进行书写。

解决:

将相对路径编程绝对路径

使用:

在jsp中路径中的第一个/表示服务器根目录。

示例:

<

注意:

Myeclipse

创建的jsp页面会自动生成路径处理代码basePath

而basePath的值为当前项目根目录,并且在head标签中使用了

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

相当于将当前页面的资源全部默认定位为从项目根目录开始查找,我们就不需要写第一个/了

IDEA

需要手动输入或者更改模板

e8f496707202d1e49c06a8daf69ea454.png

页面报错处理

6069265efab3c25c98eb1af266aa5eaf.png

注意:

basePath方式和添加/方法只能二选一。

54ec576b515569dcbaeb07f47a317c0c.png
<%
Balmy:[Servlet] 17 Servlet 路径问题​zhuanlan.zhihu.com
366a55f15766003368c9a49a17d481c8.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值