在JSP、Servlet、Java中获取详细路径的的常见方法。
假设现在有一个项目,项目名为java_path,有一个jsp文件test.jsp.
一、在JSP中获取文件的路径:
1) 得到包含工程名的当前页面的全路径:
request.getRequestURI() 结果:/java_path/test.jsp
2) 得到工程名:
request.getContextPath() 结果:/java_path
3) 得到当前页面所在目录下全名称:
request.getServletPath() 结果:如果页面在jsp目录下, /java_path/jsp/test.jsp
4) 得到页面所在服务器的全路径:
application.getRealPath("test.jsp") 结果:D:\tomcat\webapps\java_path\test.jsp
5) 得到页面所在服务器的绝对路径:
absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent();
结果:D:\tomcat\webapps\java_path
二、在普通java类(非Servlet类,当然Servlet类也适用)中取得路径:
1) 类的绝对路径:
SpecifiedClass.class.getClass().getResource("/").getPath()
结果:/D:/java_path/WebRoot/WEB-INF/classes/pack/
2) 得到工程的路径:
System.getProperty("user.dir")
结果:D:\java_path
三、 在Servlet中取得路径:
1) 得到工程目录:
request.getSession().getServletContext().getRealPath("") , 参数可具体到包名。
结果:D:\Tomcat\webapps\java_path
2) 得到IE地址栏地址,即用户请求的URL:
request.getRequestURL() , 结果:http://localhost:8080/java_path/test
3) 得到相对地址:
request.getRequestURI() 结果:/java_path/test