项目中使用路径时的写法
1.客户端路径 ==> 给浏览器用的路径,如下:
<form action="/Day08-request/AServlet" >
<a href="/Day08-request/AServlet" >
<img src="/Day08-request/AServlet" >
response.sendRedirect("/Day08-request/AServlet")
Refresh:3;url=/Day08-request/AServlet
路径写法:
带”/” : “/” ==> 相对于 主机.
例如: 表单所在页面路径为==> http://localhost:8080/Day08-request/login.jsp ==>
“/” 代表http://localhost:8080/
不带”/”:(开发中一定不要出现不带”/”的情况).代表从当前目录找.
例如: 表单所在页面路径为==>
http://localhost:8080/Day08-request/info/login.jsp ==>
代表 http://localhost:8080/Day08-request/info/
2.服务器端路径 ==> 服务器端使用的路径,如下:
<url-pattern> /AServlet ==>
http://localhost:8080/Day08-request/AServlet
request.getRequestDispatcher("/AServlet") ==>
http://localhost:8080/Day08-request/AServlet
路径写法:
带”/” : 相对于项目. “/”==>http://localhost:8080/Day08-request/
不带”/”: 不存在这种情况 (服务器端使用的路径必须带”/”).
获取资源时的路径写法
1. ServletContext
servletContext中关于路径的获得必须以“/”开头,"/"相对于 WebRoot(项目根)下
getRealPath ==> 通过相对路径获得绝对路径
getResourceAsStream ==> 根据相对路径获得指定资源流
2. Class.getResourceAsStream(String path)
相对路径分为两种情况
//1: 加"/" ==> 相对的是classes目录
//2: 不加"/" ==> 相对的是本类当前目录
this.getClass().getResourceAsStream("students.xml");
3. Class.getClassLoader.getResourceAsStream(String path)
只有一个相对路径 ==> 加"/"不加"/"都是相对于 classes目录 this.getClass().getClassLoader().getResourceAsStream("students.xml");