web项目中各种路径的获取_第1页
web项目中各种路径的获取_第2页
web项目中各种路径的获取_第3页
web项目中各种路径的获取_第4页
web项目中各种路径的获取_第5页
已阅读5页,还剩3页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、web项目中各种路径的获取可以在servlet的init方法里String path = getServletContext().getRealPath(/);这将获取web项目的全路径例女口 :E:eclipseM9workspacetree、tree是我web项目的根目录你也可以随时在任意的class里调用t his.ge tClass().ge tClassLoader().ge tResource(/).ge tPat h();这将获取 到classes目录的全路径例如:E:eclipseM9/workspace/tree/WEBTNF/classes/这个方法也可以不在web环境里确

2、定路径,比较好用reques t.ge tContextPat h();获得web根的上下文环境女口 /t ree www.2c to .comtree是我的web项目的root con text/*jsp取得当前目录的路径pat h=reques t.ge tRealPa th();/* 得 到 jbossWEB 发 布 临 时 目 录 warUrl二./tmp/deploy/tmpl4544test-exp.war/pat h二C:jboss-4.0.5.GAserverdefau ltt mpdeploytmpl4544test-exp.war St ring path = (St ri

3、ng)reques t.ge tContextPat h();/*得到项目(test)应用所在的真实的路径pa th二/testSt ring path = reques t.ge tReques tU RI();/*得到应用所在的真实的路径pat h=/tes t/admin/admindex.jspSt ring savePa th二reques t.ge tRealPa th(reques t.ge tServle tPat h(); /*得到当前文件的磁盘绝对路径/JAVA取得当前目录的路径File file二new File(.);St ring pat h二file.ge tAbs

4、ol ut ePa th();pat h二file.ge tPat h();/*得到 jboss 运行目录 path二C:jboss-4.0.5.GAbinJava相对路径/绝对路径总结基本概念的理解绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL 和物理路径)例如:C:xyz est.txt 代表了tes t.txt文件的绝对路径。 HYPERLINK /index.htm /index.htm 也代表了一个 URL 绝对路径。相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对 目录),例如:在Servlet中,/代表Web应用的跟目录。和物理

5、路径的相对表示。例如:./代 表当前目录,/代表上级目录。这种类似的表示,也是属于相对路径。另外关于URI,URL,URN等内容,请参考RFC相关文档标准。RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax,(htt p:/ HYPERLINK http:/www.ie www.ie tf .org/rfc/rfc2396 .txt)关于JSP/Servlet中的相对路径和绝对路径。2.1服务器端的地址服务器端的相对地址指的是相对于你的web应用的地址,这个地址是在服务器端 解析的(不同于html和javascript中的相

6、对地址,他们是由客户端浏览器解析 的)也就是说这时候在jsp和servlet中的相对地址应该是相对于你的web应用, 即相对于 http: /webapp/的。其用到的地方有:forward: servlet 中的 request.getRequestDispatcher(address);这个 address 是在服 务器端解析的,所以,你要forward到a.jsp应该这么写: reques t.ge tReques tDispa tcher(“/user /a.jsp)这个 / 相对于当前的 web 应用 webapp,其绝对地址就是: HYPERLINK /webapp/user/a.

7、jsp%e3%80%82 /webapp/user/a.jsp。 sendRedirect: 在 jsp l=2.22、客户端的地址所有的html页面中的相对地址都是相对于服务器根目录( HYPERLINK / /) 的,而不是(跟目录下的该Web应用的目录) HYPERLINK /webapp/%e7%9a%84%e3%80%82 /webapp/的。 Html中的form表单的action属性的地址应该是相对于服务器根目录 (htt p:/)的,所以,如果提交到 a.jsp 为:act ion = /webapp/user/a.jsp或action 二/user/a.jsp;提交到 ser

8、vlet 为 actiom=/webapp/handleservlet Javascript 也是在客户 端解析的,所以其相对路径和form表单一样。因此,一般情况下,在JSP/HTML页面等引用的CSS,Javascript.Action等属性 前面最好都加上,以确保所引用的文件都属于Web应用中的目 录。另外,应该尽量避免使用类似.,./,././ 等类似的相对该文件位置 的相对路径,这样当文件移动时,很容易出问题。JSP/Servlet中获得当前应用的相对路径和绝对路径3.1 JSP中获得当前应用的相对路径和绝对路径根目录所对应的绝对路径:reques t.ge tReques tURI

9、()文件的绝对路径:applica tion.ge tRealPa th(reques t.ge tReques tURI();当前 web 应用的绝对路径:applica tion.ge tRealPa th(/); 取 得 请 求 文 件 的 上 层 目 录 :newFile(applica tio n.ge tRealPa th(reques t.ge tReques tU RI().ge tParen t() 3.2 Servlet中获得当前应用的相对路径和绝对路径根目录所对应的绝对路径:reques t.ge tServle tPa th();文件的绝对路径:reques t.ge

10、tSession().ge tServle tCon tex t( ).ge tRealPa th(reques t.ge tReques tU RI()当 前web应 用 的 绝 对 路径 :servle tConfig.ge tServle tContext( ).ge tRealPa th(/);(ServletContext对象获得几种方式:javax.servle t.htt p.H tt pSession.ge tServle tContext()javax.servle t.jsp.PageCo ntext .ge tServle tContext()javax.servle t

11、.Servle tConfig.ge tServle tContext()java的Class中获得相对路径,绝对路径的方法4.1单独的Java类中获得绝对路径根据java.io.File的Doc文挡,可知:默认情况下 new File(/)代表的目录为:System.getProperty(user.dir)。一下程序获得执行类的当前路径package org.cheng.file;impor t java.io.File;public class FileTest .public static void main(String args) throws Exception .Sys tem

12、.o ut .pri ntl n(Thread.curre nt Thread().ge tContext ClassLoader().ge t Resource();Sys tem.o ut .pri ntln( FileTes t.class.ge tClassLoader().ge tResource();Sys tem.o ut .pri ntl n(ClassLoader.ge tSys temResource();Sys tem.o ut .pri ntln( FileTes t.class.ge tResource();Sys tem.o ut .pri ntln( FileTe

13、s t.class.ge tResource(/);/Class文件所在路径Sys tem.o ut .pri ntln (new File(/).ge tAbsol ut ePa th();Sys tem.o ut .pri ntl n(Sys tem.ge tProper ty( user.dir);4.2服务器中的Java类获得当前路径.WeblogicWebApplication的系统文件根目录是你的weblogic安装所在根目录。例如:如果你的weblogic安装在c:beaweblogic700那么,你的文件根路径就是c:.所以,有两种方式能够让你访问你的服务器端的文件:使用绝对路

14、径:比如将你的参数文件放在c:perties,直接使用 new FileInp utSt ream(yourconfig/per ti es);使用相对路径: 相对路径的根目录就是你的webapplication的根路径,即WEBTNF的上一级目录,将你的参数文件放 在 perties,这样使用:new FilelnputStream(./yourconfig/perties);这两种方式均可,自己选择。.Tomca t在类中输出 System.getProperty(user.dir);显示的是%Tomcat_Home%/bin.Resin不是你的JSP放的相对路径,是JSP引擎执行这个JS

15、P编译成SERVLET的路径为根.比如用新建文件法测试File f = new File(a.htm);这个a.htm在resin的安装目录下.如何读相对路径哪?在 Java 文件中 get Resource 或 get ResourceAsS tream 均可例 :getClass().getResourceAsStream(filePath);/filePath 可以是/filename,这里的/代表 web发布根路径下WEB-INF/classes默认使用该方法的路径是:WEB-INF/classes。已经在Tomcat中测试。总结:通过上面内容的使用,可以解决在Web应用服务器端,移动

16、文件,查找文件,复 制删除文件等操作,同时对服务器的相对地址,绝对地址概念更加清晰。建议参考URI,的RFC标准文挡。同时对Java.io.File. J.URI.等内容了 解透彻对其他方面的理解可以更加深入和透彻。这是在Java中去当前项目的根目录的方法 java 代码/* */*TODO取得当前项目的根目录author PHeH*/public class Application ./* */*TODO获取根目录returnauthor PHeH*/public static String getRootPath()./因为类名为Application,因此Application.class定能找到StringresultApplica tio n.class.ge tResource(Applica tio n.class ).toSt ring();int index = result.indexOf(WEB-INF);if(index =index = resu lt.i ndexOf(bin);resu lt 二 resu lt .subs tring(O,index);if(resu lt.startsWit h(jar)./当class文件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论