北京城建一建设发展有限公司网站,大连在哪个省的什么位置,网站建设公司 知道万维科技,手机搭建wordpress在jsp和class文件中调用的相对路径不同。 在jsp里#xff0c;根目录是WebRoot 在class文件中#xff0c;根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty(user.dir)获取你工程的绝对路径。 1.jsp中取得路径#xff1a;以工程名为TEST为例根目录是WebRoot 在class文件中根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty(user.dir)获取你工程的绝对路径。 1.jsp中取得路径以工程名为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)得到页面所在服务器的绝对路径absPathnew java.io.File(application.getRealPath(request.getRequestURI())).getParent();结果D:\resin\webapps\TEST2.在类中取得路径(1)类的绝对路径Class.class.getClass().getResource(/).getPath()结果/D:/TEST/WebRoot/WEB-INF/classes/pack/(2)得到工程的路径System.getProperty(user.dir)结果D:\TEST3.在Servlet中取得路径(1)得到工程目录request.getSession().getServletContext().getRealPath() 参数可具体到包名。结果E:\Tomcat\webapps\TEST(2)得到IE地址栏地址request.getRequestURL()结果http://localhost:8080/TEST/test(3)得到相对地址request.getRequestURI()结果/TEST/test 另Class类还有一个getResourceAsStream方法记得以前有个项目要读取在同一个包内的一个xml就用的这个。 1.如何获得当前文件路径 常用(1).Test.class.getResource()得到的是当前类FileTest.class文件的URI目录。不包括自己(2).Test.class.getResource(/)得到的是当前的classpath的绝对URI。(3).Thread.currentThread().getContextClassLoader().getResource()得到的也是当前ClassPath的绝对URI。(4).Test.class.getClassLoader().getResource()得到的也是当前ClassPath的绝对URI。(5).ClassLoader.getSystemResource()得到的也是当前ClassPath的绝对URI。尽量不要使用相对于System.getProperty(user.dir)当前用户目录的相对路径后面可以看出得出结果五花八门。(6) new File().getAbsolutePath()也可用。 注若这些路径中出现空格并且空格被%20代替则可以使用path java.net.URLDecoder.decode(path,utf-8) 进行转化; 2.Web服务器(1).Tomcat在类中输出System.getProperty(user.dir);显示的是%Tomcat_Home%/bin(2).Resin不是你的JSP放的相对路径是JSP引擎执行这个JSP编译成Servlet的路径为根.比如用新建文件法测试File f new File(a.htm);这个a.htm在resin的安装目录下 (3).如何读文件使用ServletContext.getResourceAsStream()就可以(4).获得文件真实路径 String file_real_pathServletContext.getRealPath(mypath/filename); 不建议使用request.getRealPath(/); 原帖地址http://blog.csdn.net/luo_yifan/article/details/7568466 Java中getResourceAsStream的用法 首先Java中的getResourceAsStream有以下几种 1. Class.getResourceAsStream(String path) path 不以’/开头时默认是从此类所在的包下取资源以’/开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径最终还是由ClassLoader获取资源。 2. Class.getClassLoader.getResourceAsStream(String path) 默认则是从ClassPath根下获取path不能以’/开头最终是由ClassLoader获取资源。 3. ServletContext. getResourceAsStream(String path)默认从WebAPP根目录下取资源Tomcat下path是否以’/开头无所谓 当然这和具体的容器实现有关。 4. Jsp下的application内置对象就是上面的ServletContext的一种实现。 转载于:https://www.cnblogs.com/zhaock/archive/2013/01/17/8353237.html