Java Web资源路径总结

时间:2022-09-03 18:44:01

项目中使用路径时的写法

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");