本文目录
- getRealPath和getContextPath的区别
- getrealpath和 和getabsolutepath的区别,谢谢
- 怎么用getrealpath 获取tomcat的路径
- 关于 application.getRealPath
- javaWeb中 request.getRealPath(““) 这个方法为什么不推荐使用了
- session.getServletContext().getRealPath(“\“)和 request.getServletContext().getRealPath(“\“)区别
getRealPath和getContextPath的区别
其实主要区别就是相对路径和绝对路径:getContextPath返回的是相对路径,工程的项目的相对路径;getRealPath返回的绝对路径,就是在文件系统的实际路径;
getrealpath和 和getabsolutepath的区别,谢谢
仅以程序为例说明。package test;import java.io.File;import java.io.IOException;public class TestFilePath {public static void main(String args) {// TODO Auto-generated method stubSystem.out.println(System.getProperty(“user.dir“));try {System.out.println(“-----默认相对路径:取得路径不同------“);File file1 = new File(“..\\src\\test1.txt“);System.out.println(file1.getPath());System.out.println(file1.getAbsolutePath());System.out.println(file1.getCanonicalPath());System.out.println(“-----默认相对路径:取得路径不同------“);File file = new File(“.\\test1.txt“);System.out.println(file.getPath());System.out.println(file.getAbsolutePath());System.out.println(file.getCanonicalPath());System.out.println(“-----默认绝对路径:取得路径相同------“);File file2 = new File(“D:\\workspace\\test\\test1.txt“);System.out.println(file2.getPath());System.out.println(file2.getAbsolutePath());System.out.println(file2.getCanonicalPath());} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}程序执行结果如下:F:\eclipseworkspace\testejb-----默认相对路径:取得路径不同------..\src\test1.txtF:\eclipseworkspace\testejb\..\src\test1.txtF:\eclipseworkspace\src\test1.txt-----默认相对路径:取得路径不同------.\test1.txtF:\eclipseworkspace\testejb\.\test1.txtF:\eclipseworkspace\testejb\test1.txt-----默认绝对路径:取得路径相同------D:\workspace\test\test1.txtD:\workspace\test\test1.txtD:\workspace\test\test1.txt结论:当输入为绝对路径时,返回的都是绝对路径。当输入为相对路径时:getPath()返回的是File构造方法里的路径,是什么就是什么,不增不减getAbsolutePath()返回的其实是user.dir+getPath()的内容,从上面F:\eclipseworkspace\testejb、F:\eclipseworkspace\testejb\..\src\test1.txt、F:\eclipseworkspace\testejb\.\test1.txt可以得出。getCanonicalPath()返回的就是标准的将符号完全解析的路径
怎么用getrealpath 获取tomcat的路径
在servlet的init方法里,调用:public void init(ServletConfig config) throws ServletException{super.init(config);String appPath = config.getServletContext().getRealPath(““); // tomcat的物理路径..... }
关于 application.getRealPath
你显示结果当然是上面的那个了。因为你给path赋值是这样这段字符串,所以打印出来的结果是:C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\fio\下面的取路径代码你可以参考一下:工程名为TEST为例: (1)得到包含工程名的当前页面全路径:request.getRequestURI() 结果:/TEST/test.jsp (2)得到工程名:request.getContextPath() 结果:/TEST (3)得到当前页面所在目录下全名称:request.getServletPath() 结果:如果页面在jsp目录下 /TEST/jsp/test.jsp (4)得到页面所在服务器的全路径:application.getRealPath(“页面.jsp“) 结果:D:\resin\webapps\TEST\test.jsp (5)得到页面所在服务器的绝对路径:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent(); 结果:D:\resin\webapps\TEST
javaWeb中 request.getRealPath(““) 这个方法为什么不推荐使用了
request.getRealPath(““) 就是取得你当前运行文件在服务器上的绝对路径.request.getRealPath(““)灵活性太差,只能得到当前文件绝对路径,不能在当前文件下获得其他文件的绝对路径不是工程的物理路径封装在Session里 是工程的路径被封装在了ServletContext中只是我们可以通过session对象获得这个ServletContext 获得ServletContext的方法:1.FilterConfig的getServletContext();2.ServletConfig的getServletContext();3.ServletContextEvent的getServletContext()4.HttpSession的getServletContext();
session.getServletContext().getRealPath(“\“)和 request.getServletContext().getRealPath(“\“)区别
前者是JSP规范的内容,后者是Structs等框架提供,结果在这里一样,获得session。第一句的语义是,由这个request去取出和这个request对应的session对象,如果有,会返回缓存的那个session对象,否则会第一次创建并缓存这个session对象。