您的位置:首页 > Web前端 > JavaScript

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

2017-08-06 21:05 337 查看
问题来源

取舍 JSP

JSP 变为 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 项目的根目录


结束语

小弟不才,如果有问题,谢谢大家提出,最后谢谢大家观看!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  html java web jsp 根目录
相关文章推荐