`
learnmore
  • 浏览: 588952 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

获取web服务器下的文件路径

    博客分类:
  • jsp
阅读更多
获取web服务器项目的真实物理路径
request.getSession().getServletContext().getRealPath("/");

一 相对路径的获得
   说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目)
  

       String relativelyPath=System.getProperty("user.dir");


   上述相对路径中,java项目中的文件是相对于项目的根目录
   web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于 tomcat安装目录\bin)
  二 类加载目录的获得(即当运行时某一类时获得其装载目录)
   1.1)通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)
  
   InputStream is=TestAction.class.getClassLoader().getResourceAsStream("test.txt");


   (test.txt文件的路径为 项目名\src\test.txt;类TestAction所在包的第一级目录位于src目录下)
  
   上式中将TestAction,test.txt替换成对应成相应的类名和文件名字即可
   1.2)通用方法二 (此方法和1.1中的方法类似,不同的是此方法必须以'/'开头)
   InputStream is=Test1.class.getResourceAsStream("/test.txt");
   (test.txt文件的路径为 项目名\src\test.txt,类Test1所在包的第一级目录位于src目录下)
  
  三 web项目根目录的获得(发布之后)
   1 从servlet出发
   可建立一个servlet在其的init方法中写入如下语句

   ServletContext s1=this.getServletContext();
   String temp=s1.getRealPath("/"); (关键)


   结果形如:D:\工具\Tomcat-6.0\webapps\002_ext\ (002_ext为项目名字)
   如果是调用了s1.getRealPath("")则输出D:\工具\Tomcat-6.0\webapps\002_ext(少了一个"\")
   2 从httpServletRequest出发

   String cp11111=request.getSession().getServletContext().getRealPath("/");


   结果形如:D:\工具\Tomcat-6.0\webapps\002_ext\
  四 classpath的获取(在Eclipse中为获得src或者classes目录的路径)
   方法一

       Thread.currentThread().getContextClassLoader().getResource("").getPath();

       eg:
   String t=Thread.currentThread().getContextClassLoader().getResource("").getPath();
   System.out.println("t---"+t);
   输出:t---/E:/order/002_ext/WebRoot/WEB-INF/classes/
  
   方法二

       JdomParse.class.getClassLoader().getResource("").getPath() (JdomParse为src某一个包中的类,下同)


   eg:

       String p1=JdomParse.class.getClassLoader().getResource("").getPath();
   System.out.println("JdomParse.class.getClassLoader().getResource--"+p1);


   输出: JdomParse.class.getClassLoader().getResource--/E:/order/002_ext/WebRoot/WEB-INF/classes/
  另外,如果想把文件放在某一包中,则可以 通过以下方式获得到文件(先定位到该包的最后一级目录)
   eg String p2=JdomParse.class.getResource("").getPath();
   System.out.println("JdomParse.class.getResource---"+p2);
   输出: JdomParse.class.getResource---/E:/order/002_ext/WebRoot/WEB-INF/classes/jdom/ (JdomParse为src目录    下    jdom包中的类)


在jsp和class文件中调用的相对路径不同。 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty("user.dir")获取你工程的绝对路径。

另:在Jsp,Servlet,Java中详细获得路径的方法!

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)得到页面所在服务器的绝对路径:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent();
结果:D:\resin\webapps\TEST

2.在类中取得路径:

(1)类的绝对路径:Class.class.getClass().getResource("/").getPath()
结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/
(2)得到工程的路径:System.getProperty("user.dir")
结果:D:\TEST

3.在Servlet中取得路径:

(1)得到工程目录:request.getSession().getServletContext().getRealPath("") 参数可具体到包名。
结果:E:\Tomcat\webapps\TEST
(2)得到IE地址栏地址:request.getRequestURL()
结果:http://localhost:8080/TEST/test
(3)得到相对地址:request.getRequestURI()
结果:/TEST/test

注意事项:如果你使用WebSphere服务器,并且使用从类加载器获得路径的方法,肯定不是你想要的路径,如 Thread.currentThread().getContextClassLoader().getResource("").getPath();
这个方法得到的路径绝对不是你想要的项目的classpath,如果你是一个web工程,当然可以在servlet中通过request对象来获得项目的根路径,如request.getSession().getServletContext().getRealPath("/") ,但是如果你在一个普通类中,并且项目中使用到了spring框架的话,你可以在普通类中实现ServletContextAware接口,把ServletContext注入到类中,并且通过getRealPath("/");方法获得项目的根路径
分享到:
评论

相关推荐

    在html页面使用JavaScript实行文件上传到本地服务器并获取文件所在路径

    使用JavaScript实现文件上传到本地服务器并获取到上传后文件所在路径,是由到JavaScript,java以及html页面。这个比较好,不是在jsp上获取路径,jsp太简单了,而且过时了,所以就在html页面实现了下功能,我主要是做...

    上传文件到Web服务器

    然后单击“浏览”按钮选择要上传的文件,选择完成后该文件的路径将显示在“选择文件”文本框中,最后单击“提交”按钮,将所选择的文件上传到服务器上,程序默认的上传路径为“D:\upload”,运行本实例时要建立相应...

    java绝对路径和相对路径

    java获取路径几种途径,1、获取web服务器下的文件路径,2、获取本地路径,3、获取相对路径

    Web服务器的java实现

     (1) 连接:Web浏览器与Web服务器建立连接,打开一个称为socket(套接字)的虚拟文件,此文件的建立标志着连接建立成功。  (2) 请求:Web浏览器通过socket向Web服务器提交请求。HTTP的请求一般是GET或POST命令...

    java获取路径的各种方法

    基本概念的理解绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:xyz est.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。相对...

    Web服务器配置与应用.pptx

    URL 的一般形式是: <协议>://<主机>:<端口>/<路径> ftp —— 文件传送协议 FTP http —— 超文本传送协议 HTTP News —— USENET 新闻 Web服务器配置与应用全文共134页,当前为第11页。 URL 的一般形式(续) 由以...

    Java获取*路径实现探讨

    获取web服务器下的文件路径、获取本地路径、获取相对路径等等,具体实现如下,感兴趣的朋友可以参考下

    ASP.NET(C#) Web Api通过文件流下载文件的实例

    实现的方法很简单,其中就是读取服务器的指定路径文件流,将其做为返回的HttpResponseMessage的Content。直接贴出DownloadController控件器的代码: using System; using System.Collections.Generic; using System...

    js读取本地文件到字节数组

    在web应用中,免不了把图片文件上传到服务器,当然途径不知一种。但是为了使后台接收上传文件的方法既使用网页上传,又适应桌面应用程序上传,方法的参数设置成两个,一个为字符串类型,接收文件名,另一个为字节...

    WWW服务器的构建.doc

    1.2 课程设计目的 在这次的课程设计当中,我将详细的介绍通过PC机在Window 7 系统当中通过IIS建立Web服务器来实现信息获取、邮件服务器、共享资源等功能。 1.3 需求分析 在高速发展的信息服务的建设中,服务器的...

    网络安全Web的安全概述.pptx

    物理路径泄露 物理路径泄露一般是由于Web服务器处理用户请求出错导致的,如通过提交一个超长的请求,或者是某个精心构造的特殊请求,或是请求一个Web服务器上不存在的文件。这些请求都有一个共同特点,那就是被请求...

    .net 一般处理程序获取Http推送的包体Body

    实现了别的服务器通过Http协议接口推送到自己的服务器包体(body)接收代码的实现过程,我这里是用的.net的一般处理程序做的Http接口,调用时候无需定义参数,发布后访问文件全路径就可以获取对方传过来的包体全部...

    12-Servlet执行原理.pdf

    1. 当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径。在上图 的URL中,获取的资源路径就是/demo01 2. 查找web.xml文件,是否有对应的标签体内容。 3. 如果有,则在找到对应的...

    web路径探测工具 7kbscan-WebPathBrute 1.5.8 (集成三字典)

    十二字典编码为UTF8如需使用含中文或其他特殊语言路径字典请修改字典文件编码为UTF8 另外说一句字典有点乱我也没有精力去仔细弄了希望有人能整理一份分享给大家也可以私下联系我我来收集整理多谢大家

    解析php中获取url与物理路径的总结

    在这里我想总结一下取得地址栏内URL及文件所属的我更路径的一些信息:运用$_SERVER[ ]我们可以来完成许多事情:它是一个包含头部(headers),路径信息及脚本位置的数组,数组的实体由web服务器创建。这是一个...

    服务器的组建.pptx

    在这里设定FTP主目录的路径为"C:\Web,然后单击【下一步】按钮继续下面的操作。 (7) 在【允许下列权限】选项组中指定FTP站点权限。FTP站点只有两种访问权限:读取和写入,前者对应下载权限,客户端只能对FTP站点中的...

    file_hunter:帮助手动分析给定 Web 服务器上可公开访问的文件的工具

    该脚本将在您具有 SSH 访问权限的(基于 Unix 的)服务器上(递归地)获取给定目录的目录内容。 接下来它将向每个路径发出请求,并将结果保存到一个包含响应代码、内容长度、相对路径、请求的 URL 和重定向位置...

    推荐免费好用的Web在线Office(Word)编辑控件

    strFieldPath 文件路径,可以是http,ftp的路径 pPos = 0 //当前鼠标位置 1;文件开头 2;文件末尾 pPos的第4位为1的时候,代表插入的是图片 InSertFile(BSTR strFieldPath, long lPos) */ //文件头部插入文件 ...

    rpi-public-ip:获取公共IP并通过电子邮件发送。 对于基于Raspberry Pi创建Web服务器很有用

    该脚本对于创建Web服务器,在本地网络外部使用VNC或能够SSH到动态IP主机非常有用。 知道动态IP主机的公共IP还有许多其他有用的用途。安装要安装该工具,请下载文件,并将其放置在合适的文件夹中,例如/ home / user...

Global site tag (gtag.js) - Google Analytics