首先明确一个概念:
/ 代表根目录
./当前目录
../当前目录的上一层目录
../../当前目录的上一层目录的上一层目录
把问题分成两头来看:客户端和服务器端
服务器端:
/ 代表根目录(http://127.0.0.1:8080/web11/)
所以我们在struts中这样配置jsp路径:
<forward name="LOGON" path="/WEB-INF/jsp/app/logon/logon.jsp"/>
表示web11/WEB-INF/jsp/app/logon/logon.jsp路径
客户端:
/ 代表根目录(http://127.0.0.1:8080/)
./代表根目录(http://127.0.0.1:8080/web11/)
首先浏览器是这样工作的,例如:浏览器请求a.jsp,服务器收到请求,运行a.jsp并生成html发给浏览器,此时浏览器收到的只是一些html标签,浏览器把包含资源的标签取出(<script type="text/javascript" src="./js/calendar.js"></script>, <img src="/web11/img/Btn_chan.gif" height="30" width="78" border="0">等),得到“./js/calendar.js”和"/web11/img/Btn_chan.gif“,因为
/ 代表根目录(http://127.0.0.1:8080/)
./代表根目录(http://127.0.0.1:8080/web11/)
所以“./js/calendar.js”转化为http://127.0.0.1:8080/web11/js/calendar.js
"/web11/img/Btn_chan.gif转化为http://127.0.0.1:8080/web11/img/Btn_chan.gif
然后浏览器再去请求这些资源