首页 > 编程知识 正文

相对路径转换为绝对路径,Java读取Linux下绝对路径

时间:2023-05-04 10:34:05 阅读:39444 作者:934

Java相对路径/绝对路径总结[@more@]1.理解基本概念绝对路径:绝对路径是您主页上文件或目录硬盘上的真实路径,(URL和物理路径) )例如c : xx60 http://www.sun.com/index.htm也表示URL的绝对路径。 相对路径:基准目录的相对路径。 包含Web的相对路径(HTML中的相对目录)。 例如,在servlet中,“/”表示web APP应用程序的从属目录。 与物理路径的相对表示。 例如,'./'表示当前目录,' ./'表示上层目录。 这种类似的显示也属于相对路径。 此外,有关URI、URL、URN等内容的信息,请参阅RFC相关文档标准。 RFC 2396:统一资源标识符(uri ) :通用同步,(http://www.IETF.org/RFC/RFC 2396.txt )2.JSP/(与html和javascript中的相对地址不同,他们是在客户端浏览器中解析的。 也就是说,此时jsp和servlet中的相对地址必须是您的web APP应用程序的相对地址,即http3360///1990。 其使用位置为: forward:servlet的request.getrequest dispatcher (address ); 此address将在服务器端进行分析,因此必须这样写才能正向a.jsp前进。 request.getrequest dispatcher (“/user/a.JSP”)此/绝对地址为当前webapp应用程序webapp的sendredirect :在JSP中为2.22,客户端客户端用于服务器根目录(http://192.168.0.1/),(与目录下该web APP应用程序的目录不同) http://192.168.0.1/wwww Html的form 因此,提交到a.jsp时,action='/webapp/user/a.jsp '或action

由于发送到servlet的操作是actiom='/web app/handle servlet ' JavaScript,因此其相对路径与form表单相同。

因此,一般来说,最好附加在JSP/HTML页面等中引用的CSS、Javascript.Action等属性之前

单击,确保引用的文件属于web APP应用程序中的目录。 另外,应该尽量避免使用该文件位置的相对路径,如'.'、'./'、' ./'等,在移动文件时容易发生问题。 3.1在JSP servlet上获取当前APP应用程序的相对和绝对路径与3.1在JSP上获取当前APP应用程序的相对和绝对路径路由相对应的绝对路径:request.getRequestURI ()文件的绝对路径33: 当前web APP应用程序的绝对路径: application.get realpath ('/'; 请求文件的上级目录: new file (application.get realpath (request.getrequest uri ) ).getParent ).3.2 Servlet中当前APP应用程序的斯: request.getsession (.getservletcontext ).get realpath (request.getrequest uri ) )当前web APP应用程序的绝对路径3360 servlest javax.servlet.http.http session.getservletcontext () javax.servlet.JSP.pagecontext.get sion ) ), 可以通过多种方法获取: avax.servlet.servletconfig.getservletcontext ()4.java的Class提供相对路径,而获得绝对路径4.1单个Java类提供绝对路径import java.io.File; public class filetest { publicstaticvoidmain (string [ ] args ) throwsexception ) system.out.println ) thread.curren

tThread().getContextClassLoader().getResource("")); System.out.println(FileTest.class.getClassLoader().getResource("")); System.out.println(ClassLoader.getSystemResource("")); System.out.println(FileTest.class.getResource("")); System.out.println(FileTest.class.getResource("/")); //Class文件所在路径 System.out.println(new File("/").getAbsolutePath()); System.out.println(System.getProperty("user.dir")); } } 4.2服务器中的Java类获得当前路径(来自网络) (1).Weblogic WebApplication的系统文件根目录是你的weblogic安装所在根目录。例如:如果你的weblogic安装在c:eaweblogic700..... 那么,你的文件根路径就是c:. 所以,有两种方式能够让你访问你的服务器端的文件: a.使用绝对路径:比如将你的参数文件放在c:yourconfigyourconf.properties,直接使用 new FileInputStream("yourconfig/yourconf.properties"); b.使用相对路径:相对路径的根目录就是你的webapplication的根路径,即WEB-INF的上一级目录,将你的参数文件放 在yourwebappyourconfigyourconf.properties,这样使用: new FileInputStream("./yourconfig/yourconf.properties"); 这两种方式均可,自己选择。 (2).Tomcat 在类中输出System.getProperty("user.dir");显示的是%Tomcat_Home%/瘦瘦的云朵 (3).Resin 不是你的JSP放的相对路径,是JSP引擎执行这个JSP编译成SERVLET 的路径为根.比如用新建文件法测试File f = new File("a.htm"); 这个a.htm在resin的安装目录下 (4).如何读相对路径哪? 在Java文件中getResource或getResourceAsStream均可 例:getClass().getResourceAsStream(filePath);//filePath可以是"/filename",这里的/代表web 发布根路径下WEB-INF/classes 默认使用该方法的路径是:WEB-INF/classes。已经在Tomcat中测试。 5.读取文件时的相对路径,避免硬编码和绝对路径的使用。(来自网络) 5.1 采用Spring的DI机制获得文件,避免硬编码。参考下面的连接内容: http://www.javajia.net/viewtopic.php?p=90213& 5.2 配置文件的读取参考下面的连接内容: http://dev.csdn.net/develop/article/39/39681.shtm 5.3 通过虚拟路径或相对路径读取一个xml文件,避免硬编码 参考下面的连接内容: http://club.gamvan.com/club/clubPage.jsp?iPage=1&tID=10708&ccID=8 6.Java中文件的常用操作(复制,移动,删除,创建等)(来自网络)常用 java File 操作类 http://www.easydone.cn/014/200604022353065155.htm Java文件操作大全(JSP中) http://www.pconline.com.cn/pcedu/empolder/gj/java/0502/559401.html java文件操作详解(Java中文网) http://www.51cto.com/html/2005/1108/10947.htm JAVA 如何创建删除修改复制目录及文件 http://www.gamvan.com/developer/java/2005/2/264.html 总结:通过上面内容的使用,可以解决在Web应用服务器端,移动文件,查找文件,复制删除文件等操作,同时对服务器的相对地址,绝对地址概念更加清晰。建议参考URI,的RFC标准文挡。同时对Java.io.File. Java.net.URI.等内容了解透彻对其他方面的理解可以更加深入和透彻。 这是我经常用的在Java中去当前项目的根目录的方法 java 代码 /** * TODO 取得当前项目的根目录 * @author PHeH * Created On 2006-12-30 17:15:41 */ public class Application { /** * TODO 获取根目录 * @return * @author PHeH * Created On 2007-5-10 15:16:21 */ public static String getRootPath(){ //因为类名为"Application",因此" Application.class"一定能找到 String result = Application.class.getResource("Application.class").toString(); int index = result.indexOf("WEB-INF"); if(index == -1){ index = result.indexOf("瘦瘦的云朵"); } result = result.substring(0,index); if(result.startsWith("jar")){ // 当class文件在jar文件中时,返回"jar:file:/F:/ ..."样的路径 result = result.substring(10); }else if(result.startsWith("file")){ // 当class文件在class文件中时,返回"file:/F:/ ..."样的路径 result = result.substring(6); } if(result.endsWith("/"))result = result.substring(0,result.length()-1);//不包含最后的"/" return result; } }

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8227294/viewspace-968680/,如需转载,请注明出处,否则将追究法律责任。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。