绝对路径:以/开头的路径就叫做绝对路径,绝对路径在相对于的路径上直接拼接得到最终的路径
相对路径:不以/开头的路径就叫做相对路径,相对路径基于当前所在的路径计算的到最终的路径
硬盘路径:以盘符开头的路径就叫做硬盘路径.是哪个路径就是哪个路径.没有相对于谁的问题
虚拟路径: –写虚拟路径时都使用绝对路径
如果路径是给浏览器用的,这个路径相对于虚拟主机,所以需要写上web应用的名称
如果路径是个服务器用的,这个路径相对于web应用,所以可以省写web应用的名称
< a href=”/Day04/…..”>
< form action=”/Day04/…”>
< img src=”/Day04/….”>
response.setHeader(“Location”,”/Day04/….”);
response.setHeader(“refresh”,”3;url=/Day04/…”);
response.sendRedirect(“/Day04/…”);
request.getRequestDispathce(“/index.jsp”).forward();
request.getRequestDispathce(“/index.jsp”).include();
Servlet可以通过两个两种方式得到RequestDispatcher对象:
- 调用ServletContext的getRequestDispatcher(String path)方法,path参数指定目标组件的路径
path参数必须为绝对路径;绝对路径,就是以符号“/”开头的路径,“/”表示当前Web应用的URL路口 调用ServletRequest的getRequestDispatcher(String path)方法,path参数指定目标组件的路径
path参数既可以为绝对路径,也可以为相对路径;相对路径,就是相对于当前Servlet组件的路径,不以“/”开头真实路径: –写真实路径时都使用相对路径
根据原理,具体问题具体分析servletContext.getRealPath(“config.properties”);//–给一个相对于web应用目录的路径
classLoader.getResource(“../../config.properties”);//–给一个相对于类加载目录的路径File file = new File(“config.properties”);//–相对于程序的启动目录
new InputStream(“config.properties”);//–相对于程序的启动目录
前两个加/也行 后两个加/就到该盘的根目录去找了
Class.getResource(String path)
path 不以’/’开头时,默认是从此类所在的包下取资源;以’/’开头时,则是从ClassPath根下获取;
同样用法的还有Class.getResource和Class.getResourceAsStream。
Class.getClassLoader().getResource(String path)
path 不能以’/’开头并且它是从ClassPath根目录下获取;
同样用法的还有Class.getClassLoader().getResource和Class.getClassLoader().getResourceAsStream。