文件系统中相对路径
根目录 /
当前目录 ./
上一级目录 ../
上两级目录 ../../
下级test目录中的test.html文件 test/test.html
web应用中“/”表示的含义
1.在 jsp或html文件中
某个含有路径的语句,例如: <a href="/ProjectName/..."></a>
href里面第一个斜杠‘/’表示的是 tomcat 中webapps目录,后面接的ProjectName 是一个web应用名称,也是Eclipse中的项目名称。
注意:如果使用struts等框架,“/”的含义又会发生改变
2.在服务器servlet中
某个含有路径的语句,例如:request.getRequestDispatcher("/pages/CurrentInfo.jsp").forward(request,response);
路径里面的第一个斜杠 ‘/’ 表示的是 tomcat 中webapps的子目录即某一web应用名称,相当于当前访问的web应用目录。
当前servlet所在路径是web.xml所在路径,所以如果某个servlet中含有"../login.jsp",则表示web-inf的上一级目录即web应用下的login.jsp。
上面蓝色字 是我之前的理解,是有问题的,但在进行request转发时,发现请求的html网页中的相对路径全都变成http://localhost:8080/project/servlet/resource/images/xxx.gif.
说明在转发的时候,请求资源中的相对路径是相对于此servlet的路径,而此servlet的路径准确说应该是web.xml中配置的路径(如:/servlet/loginCheckServlet),即此servlet所在目录(虚拟目录,并不存在)为http://localhost:8080/project/servlet,所以相对路径“resource/images/xxx.gif”实际上就是绝对路径http://localhost:8080/project/servlet/resource/images/xxx.gif.
3.重定向
response.sendRedirect("/project/...");//首斜杠 / 表示 tomcat 目录下的 webapps 文件夹
4.web.xml
"/servlet/***" 首个斜杠表示某个web app 目录即某一web应用名称