Web 项目中 JSP 和 HTML 的取舍和资源引用时 "" 根目录的寻找

xiaoxiao2021-02-28  67

问题来源取舍 JSPJSP 变为 HTML 的问题 根目录快速识别结束语

问题来源

我从 Android 转到了 Java Web 后台开发,也没有写博客了,我一般是记录在本子上,因为我觉得方便,想怎么记就怎么记,不过现在慢慢的转变了,我想每个人在学习的过程中都会有问题,我以后就把我的笔记记录在博客上,原因有:

1. 是方便查找。 2. 后面的人遇到相同的问题时,可以参考下。

好,进入正题。 因为 Web 项目,在客户端和服务端运行,前端运行在客户端,后台运行在服务端,其中 “\” 根目录的意义就有所不同了,我之前也比较迷糊,不知那个时候用相对地址还是绝对地址。 假期找了实习,做的是 Java Web 后台开发,前端是写好的,我按照以前的经验,把所有的 HTML 改为 JSP, 把 HTML 中所有的资源引用,全是换为绝对地址,就像下面一样:

String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";

这种确实方便,什么都不用管,都是用的绝对地址。但最近我觉得 JSP 这种模式很不好,前台写完以后,我要把所有的 HTML 改为 JSP,虽然说 JSP 是动态网页,这只是相对于前台和后台的说法,在后台中确实是动态的,但是前台都是静态页面,当有什么更新的值,那么就只有全局刷新。而且 JSP 不是客户端直接访问的,JSP 要变为 Servlet,然后 Tomcat 再进行分发。

取舍 JSP

在公司接触了 AJAX,然后我感觉整个前台和后端的交互逻辑可以变成一种清晰的架构,请看下图:

解释一下, 前端用: HTML + CSS + JS 进行开发。 后端用: 后端语言开发,比如Java,Python,Golang 等等都可以。 前端用 AJAX 进行表单的提交数据和进行页面的局部更新。 前端与后端数据的交换用 JSON。

JSP 变为 HTML 的问题

由上面可以看到,整个 Web 架构就清晰多了,前端写前端的,后端写后端的。 不过在前端的资源引用就不能用 JSP 的特性来获得绝对路径了,要改为相对路径了,就会涉及到 “\” 根目录的问题。例如以下的路径

./ . 代表当前路径 ../ .. 代表上一级路径 / 根目录这个就不好说了。

“\” 根目录快速识别

接下来我就用最简介的语言说清楚,根目录的识别。

客户端解析 "\" Web 容器根目录 服务端解析 "\" 当前 Web 引用的根目录

解释下,谁解析 “\” 就代表不同的意思。 比如:

客户端在访问时,访问的是 Web 容器,所以在客户端是 "\" 代表的是 Web 容器的根目录 服务端在被访问时, Web 容器中,各个项目是独立存在的,所以单个项目中 "\" 为当前的 Web 项目的根目录

结束语

小弟不才,如果有问题,谢谢大家提出,最后谢谢大家观看!

转载请注明原文地址: https://www.6miu.com/read-63590.html

最新回复(0)