我从 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 再进行分发。
在公司接触了 AJAX,然后我感觉整个前台和后端的交互逻辑可以变成一种清晰的架构,请看下图:
解释一下, 前端用: HTML + CSS + JS 进行开发。 后端用: 后端语言开发,比如Java,Python,Golang 等等都可以。 前端用 AJAX 进行表单的提交数据和进行页面的局部更新。 前端与后端数据的交换用 JSON。
由上面可以看到,整个 Web 架构就清晰多了,前端写前端的,后端写后端的。 不过在前端的资源引用就不能用 JSP 的特性来获得绝对路径了,要改为相对路径了,就会涉及到 “\” 根目录的问题。例如以下的路径
./ . 代表当前路径 ../ .. 代表上一级路径 / 根目录这个就不好说了。接下来我就用最简介的语言说清楚,根目录的识别。
客户端解析 "\" Web 容器根目录 服务端解析 "\" 当前 Web 引用的根目录解释下,谁解析 “\” 就代表不同的意思。 比如:
客户端在访问时,访问的是 Web 容器,所以在客户端是 "\" 代表的是 Web 容器的根目录 服务端在被访问时, Web 容器中,各个项目是独立存在的,所以单个项目中 "\" 为当前的 Web 项目的根目录小弟不才,如果有问题,谢谢大家提出,最后谢谢大家观看!