JavaWeb系列十: web工程路径专题

在这里插入图片描述

问题:
在这里插入图片描述

相对路径

1.使用相对路径来解决, 有一个非常重要的原则: 页面所有的相对路径, 在默认情况下, 都会参考当前浏览器地址栏的路径http://ip:port/工程路径/资源 来进行跳转.
2.如果加了base标签, 相对路径就会参考base标签配置的路径.
在这里插入图片描述

相对路径缺点

  1. …/的困扰
    在这里插入图片描述
    在这里插入图片描述
  2. 相对路径总是会依赖浏览器的地址栏, 所有不推荐使用. 如果需要指定页面相对路径参考的路径, 可以使用base标签来指定

base标签

  1. base标签是HTML语言中的基准网址标记, 它是一个单标签, 位于网页头部文件的head标签内
  2. 一个页面最多只能使用一个base元素, 用来提供一个指定的默认目标, 是一种表达路径和连接网址的标记
  3. 常见的url路径形式分别有相对路径和绝对路径, 如果base标签指定了目标, 浏览器将通过这个目标来解析当前文档中所有的相对路径, 包括的标签有(a标签, img标签, link标签, form标签)
  4. 也就是说, 浏览器解析时会在路径前加上base给的目标, 而页面中的相对路径也都转换成了绝对路径. 使用了base标签就应带上href属性和target属性

浏览器对首位 / 的解析规则

浏览器对首位 / 的解析规则
在这里插入图片描述

服务器对首位 / 的解析规则

服务器对首位 / 的解析规则
在这里插入图片描述
默认的方式即参考当前的路径, 所以最好是加上/, 因为servlet并不总是直接在webpath下的

课堂作业

题目1: 由login.html跳转到user.html的所有方法
在这里插入图片描述

  1. 不借助Servlet
    在这里插入图片描述
  2. 借助Servlet
    在这里插入图片描述
    在这里插入图片描述
    默认的方式即参考当前的路径, 所以最好是加上/, 因为servlet并不总是直接在webpath下的

题目2: 由user.html返回到login.html的所有方法
在这里插入图片描述
解决方案:
在这里插入图片描述
在这里插入图片描述
默认的方式即参考当前的路径, 所以最好是加上/, 因为servlet并不总是直接在webpath下的

注意细节

  1. web工程的相对路径和绝对路径
  • 相对路径
    • .表示当前目录
    • …表示上一级目录
  • 资源名
    • 表示当前目录 / 资源名
  • 绝对路径
    • http://ip:port/工程路径 / 资源路径
  1. 在实际开发中, 路径都是用绝对路径, 而不是相对路径
  2. 在web中, / 斜杠如果被浏览器解析, 得到的地址是: http://ip[域名]:port/, 比如<a href=“/”>fds</a>
  3. 在web中, / 斜杠如果被服务器解析, 得到的地址是: /工程路径/, 你也可以理解为http://ip[域名]:port/工程路径/, 下面几种情况就是如此:
  • <url-pattern>/servletUrl<url-pattern>
  • servletContext.getRealPath(“/”)
  • request.getRequestDispatcher(“/”)
    在这里插入图片描述
  1. 在javaWeb中, 路径最后带 / 和不带 / 含义不同, 一定要小心
    比如<a href=“/a/servlet03”>网址</a> servlet03表示资源; <a href=“/a/servlet03/”>网址</a> servlet03表示路径
    在这里插入图片描述
  2. 特别说明: response.sendRedirect(“/”); 这条语句虽然是在服务器执行的, 但是服务器把斜杠 / 发送给浏览器解析. 因此得到地址 http://ip[域名]:port/

小结: 在编写资源路径时, 要考虑这么几点:

  1. 这个路径 前面有没有 /
  2. 如果有, 这个路径是在哪里被解析的, 是在服务器还是在浏览器. 如果是在浏览器端被解析的, 被解析成 http://ip:port/; 如果是在服务器端被解析的, 被解析成 /工程路径/.
  3. 如果没有 / , 并且在浏览器被解析, 则以浏览器当前的地址栏 去掉 资源部分作为一个相对路径的参考路径.
  4. 这个路径 最后有没有 / , 如果最后有 / , 表示一个路径; 如果没有 / , 表示定位一个资源

重定向作业

题目: 写出login.html在通过Servlet重定向情况下, 如何通过表单提交,找到user.html, 写出所有方法
在这里插入图片描述
解决方案:
在这里插入图片描述

写法3:

web工程路径优化

在这里插入图片描述

题外话: 自定义快捷键

自定义idea快捷键

  1. 首先找到你想做的快捷键的位置, 鼠标停留上去, 浮出一个标签, 根据②和③来找到该按钮在keymap(键映射)中的位置
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 12
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~ 小团子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值