总结有关路径的几种写法:
目标地址:WEBROOT下的target.html
1.转发
request.getDispatcher(“路径/”).forward(request,tesponse)[和Context的一样,只是比较简便]
2.重定向
response.sendRedirect(“路径/”)
3.html的超链接href
response.getWriter().write(“<a href=”路径/” >超链接</a>”)
4.html页面中的表单的form提交地址
response.getWriter().write(“<form action=’路径/’><input type=’submit’></form>”)
思路:
是谁发出的? 服务器or浏览器
服务器:/表示在当前web服务器的根目录(WebRoot)
浏览器:/表示在web-apps的目录下
转发:是服务器用的,目录为:/target.html
重定向:是由浏览器发出的,目录为:/test/target.html
html中的超链接:表示浏览器自己的请求-->目录为:/test/target.html
html中的form提交表单:同上。
Web资源获取(加载Web通用方式):
File file = new File(“./src/db.properties”) 或者 File file = new File(“C:Andy/Myeclipse/test1/src/db.properties”)
.表示相对路径中的当前路径,相对于java运行的目录
在java项目中,.表示在java项目的根目录
在Web项目中,.表示在tomcat的bin目录下
结论:在Web项目中,.代表在tomcat的bin目录下,因此不能用.的方式
应该使用Web应用下加载资源的方式-->
方法一:
String path = Context.getRealPath(“路径”) -->返回资源文件的绝对路径
File file = new File(path); FileInputStream in = new FileInputStream(file);
方法二:
InputStream in = Context.getResourceAsStream(“路径”)-->返回的是一个输入流
路径:/WEB-INF/classes/de.properties-->以服务器的视角