JAVA文件中如何获取路径

  介绍

这篇文章主要介绍了JAVA文件中如何获取路径,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

<强> 1。基本概念的理解

“绝对路径”:你应用上的文件或目录在硬盘上真正的路径,如:URL、物理路径

例如:

c:/xyz/用法代表了用法文件的绝对路径;

http://www.sun.com/index.htm也代表了一个URL绝对路径;

的相对路径”:相对与某个基准目录的路径,包含网络的相对路径(HTML中的相对目录)。

例如:

在Servlet中,“/按硗缬τ玫母柯?和物理路径的相对表示。

例如:

“。/按淼鼻澳柯?“. ./贝砩霞赌柯肌U庵掷嗨频谋硎?也是属于相对路径。

<强> 2。关于JSP/Servlet中的相对路径和绝对路径。

<强> 2.1服务器端的地址

的服务器端的相对地址”:指的是相对于你的网络应用的地址,这个地址是在服务器端解析的(不同于html和javascript中的相对地址,他们是由客户端浏览器解析的)也就是说这时候在JSP和Servlet中的相对地址应该是相对于你的网络应用,即相对于http://192.168.0.1/webapp/的。

其用到的地方有:

”提出:Servlet中的request.getRequestDispatcher(地址);“这个地址是在服务器端解析的,所以,你要前进到a.jsp应该这么写:

“request.getRequestDispatcher (“/user/a.jsp”)“这个/相对于当前的网络应用webapp,其绝对地址就是:http://192.168.0.1/webapp/user/a.jsp。

<强> 2.2客户端的地址

的所有的html页面中的相对地址”都是相对于服务器根目录(http://192.168.0.1/)的,而不是(根目录下的该网页应用的目录)http://192.168.0.1/webapp/的。

html中”的形式表单的行为属性的地址”应该是相对于服务器根目录(http://192.168.0.1/)的,所以,如果提交到a.jsp为:action=?webapp/user/a.jsp"或action=?user/a.jsp",提交到Servlet为action=?webapp/handleservlet"。

javascript也是在客户端解析的,所以其相对路径和形式表单一样。

因此,一般情况下,在JSP/html页面等引用的CSS、javascript、行动等属性前面最好都加个上应用应用名称,以确保所引用的文件都属于网络应用中的目录。

另外,应该尽量避免使用类似“!”,“。/?“. ./. ./钡壤嗨频南喽愿梦募恢玫南喽月肪?这样当文件移动时,很容易出问题。

<强> 3。JSP/Servlet中获得当前应用的相对路径和绝对路径

<强> 3.1 JSP中获得当前应用的相对路径和绝对路径

根目录所对应的绝对路径:“request.getRequestURI (); "

文件的绝对路径:“application.getRealPath (request.getRequestURI ());“

当前网络应用的绝对路径:“application.getRealPath (“/?;“

取得请求文件的上层目录:“newFile中(application.getRealPath (request.getRequestURI ())) .getParent (); "

<强> 3.2 Servlet中获得当前应用的相对路径和绝对路径

根目录所对应的绝对路径:“request.getServletPath (); "

文件的绝对路径:“request.getSession () .getServletContext () .getRealPath (); "

当前网络应用的绝对路径:“servletConfig.getServletContext () .getRealPath (“/?;“

ServletContext对象获得几种方式:

javax.servlet.http.HttpSession.getServletContext ()   javax.servlet.jsp.PageContext.getServletContext ()   javax.servlet.ServletConfig.getServletContext ()

<强> 4。java的类中获得相对路径,绝对路径的方法

<强> 4.1单独的java类中获得绝对路径

根据java.io.File的Doc文挡,可知:“默认情况下newFile中(“/?代表的目录为:System.getProperty (“user.dir");“。

以下程序获得执行类的当前路径:

package  org.cheng.file;,   import  java.io.File,   鱼片{public  class    ,public  static  void  main (String [] args) throws 异常{,   .getContextClassLoader System.out.println才能(Thread.currentThread () () .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(“/?);//类文件所在路径,   System.out.println才能(newFile中(“/?.getAbsolutePath ()),,   System.out.println才能(System.getProperty (“user.dir")),,   }大敌;   }

<强> 4.2服务器中的Java类获得当前路径(来自网络)

JAVA文件中如何获取路径