`
269629151
  • 浏览: 122057 次
社区版块
存档分类
最新评论

(转载)获取项目的路径

    博客分类:
  • web
阅读更多

(转载)获取项目的路径

 

参考网络文章整理
1.  获取web服务器项目的真实物理路径

request.getSession().getServletContext().getRealPath("/");

2.  相对路径的获得

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

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

上述相对路径中,java项目中的文件是相对于项目的根目录

web项目中的文件路径视不同的web服务器不同而不同

(tomcat是相对于 tomcat安装目录\bin)

3.  类加载目录的获得(即当运行时某一类时获得其装载目录)

3.1. 通用的方法一

(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)   

   InputStream is=TestAction.class.getClassLoader().getResourceAsStream("test.txt");

   (test.txt文件的路径为项目名\src\test.txt;类TestAction所在包的第一级目录位于src目录下)   

   上式中将TestAction,test.txt替换成对应成相应的类名和文件名字即可

3.2. 通用方法二 (此方法和1.1中的方法类似,不同的是此方法必须以'/'开头)

   InputStream is=Test1.class.getResourceAsStream("/test.txt");

   (test.txt文件的路径为项目名\src\test.txt,类Test1所在包的第一级目录位于src目录下)   

4.  web项目根目录的获得(发布之后)

4.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(少了一个"\")

4.2. 从httpServletRequest出发

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

 

   结果形如:D:\工具\Tomcat-6.0\webapps\002_ext\

5.  classpath的获取

(在Eclipse中为获得src或者classes目录的路径)

5.1. 方法一

       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/   

5.2. 方法二

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")获取你工程的绝对路径。

6.  在Jsp,Servlet,Java中详细获得路径的方法

6.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

6.2. 在类中取得路径:

(1)类的绝对路径:Class.class.getClass().getResource("/").getPath()

结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/

(2)得到工程的路径:System.getProperty("user.dir")

结果:D:\TEST

6.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

分享到:
评论

相关推荐

    提高php代码质量 36计 转载开源中国社区

    更优的解决方案是利用`__FILE__`常量动态获取当前脚本的完整路径,再通过`pathinfo()`函数提取目录部分,定义为`ROOT`常量,确保脚本在任何环境下都能正确引用资源。 ### 2. 重构require/include语句 #### 原始...

    Laneser MSRS学习日志转载

    7. **学习路径**:根据“Laneser MSRS学习日志”的结构,可能涵盖了从安装配置、报表设计基础、数据处理到高级特性的逐步讲解,适合初学者按部就班地学习。 8. **实践应用**:通过10天的学习日志,读者应能掌握MSRS...

    Castor学习笔记 (转载)

    `.classpath`和`.project`文件是Eclipse项目配置文件,它们包含了项目依赖和构建路径信息。使用Eclipse这样的IDE,开发者可以更好地管理和调试使用Castor的项目。 6. 库依赖 `lib`目录下的文件通常是项目的依赖库...

    通过JavaCompiler进行编译java文件(转载)

    现在,我们可以设置编译任务的参数,例如类路径、源路径等。接着,创建一个`CompilationTask`对象,它是实际编译任务的表示: ```java CompilationTask task = compiler.getTask(null, fileManager, null, null, ...

    【RPA之家转载AA视频教程】3.A2019 - Python script pacakge with single argument.rar

    在这个【RPA之家转载AA视频教程】中,我们聚焦于"3.A2019 - Python script package with single argument"的主题。RPA,即Robotic Process Automation,是一种自动化技术,它允许通过软件机器人来模拟和执行人类在...

    如何在Delphi中调用外部程序转载.docx

    它接受两个参数:被调用程序的路径和名称,以及程序的显示模式(例如,最大化、最小化或隐藏)。例如: ```delphi WinExec('Notepad.exe', SW_MAXIMIZE); ``` 这里`SW_MAXIMIZE`表示最大化程序窗口。 2. **...

    云开发外卖小程序源码可编译成h5

    源码为uniapp项目,需下载hbuilder导入项目打包,可编译成h5或小程序(跳转地址为小程序路径)常见问题 注意!源码安装后,如发现有加密,授权,需要加某人QQ,请放弃使用,小心有后门挂马,被骗风险,本站不会添加...

    转载软件测试试题

    - **Beta测试**:面向公众开放,由真实的最终用户在实际环境中使用,旨在获取更多反馈信息,验证产品的市场适应性。 #### 软件评审参与者与目的 软件评审通常由项目经理、开发人员、测试人员以及领域专家等参与。其...

    Dojo 教程 笔记 (转载)

    为了获取Dojo的最新源代码,你需要安装Subversion(SVN)。通过以下命令,你可以从Dojo的版本控制系统中检出源代码: ```shell svn co http://svn.dojotoolkit.org/dojo/trunk/ ``` 这将在你的当前目录下创建一个...

    怎样用orcad画原理图AD画pcb(转载)

    此外,随着软件版本的更新,某些具体操作步骤可能会有所变化,因此在实际操作之前,建议查看最新的软件帮助文档或在线资源,以获取最新信息和操作指南。 总之,通过掌握在OrCAD中绘制原理图并导入Altium Designer...

    关于struts-menu的简单使用方法(静态的取XML的方式-转载)

    首先,需要将Struts-menu的库文件(JAR包)添加到项目的类路径中。然后,在Struts的配置文件(struts-config.xml)中,需要定义一个处理菜单的Action,如下所示: ```xml ``` 这里的`MenuAction`是Struts-menu...

    在页面预览客户端本地图片的js代码(兼容FF IE)

    公司最近有个项目有这样的需求我才发现我之前写的 如何通过JS获取用户本地图片路径 这篇文章里所使用的方法只支持本地页面预览本地图片 有一种解决方法是上传到服务器后返回相对路径 但是效率是个问题,编程复杂度也...

    MTK开发笔记个人总结版--转载

    - **Zi输入法**:包括新建项目目录、拷贝第三方Zi文件、扩展名修改及包含到IMEResZi.h中等步骤。 - **T9输入法**:移植相对复杂,需参照提供的PDF文档进行,这些文档详细说明了资源生成的步骤。 - **CStar输入法*...

    如何学习Java(转载某位经过锤炼而成为高手的同行)

    本文将根据一位资深Java程序员的经验分享,为初学者提供一条清晰的学习路径,帮助大家在Java之旅中少走弯路,加速成长。 #### Java的三大领域:J2SE、J2ME与J2EE Java自问世以来,其应用范围广泛,涵盖桌面应用、...

    C#操作Excel

    // 获取第一个工作表 ``` 要修改特定单元格的内容,可以使用 `Range` 对象: ```csharp Excel.Range m_objRange = m_objSheet.get_Range("B1", Missing.Value); m_objRange.Value = "新的内容"; ``` 这里的 `"B1"` ...

    Qt系列教程合集

    - **持续学习路径**:社区会定期发布不同级别的开源项目供成员练习与提高,以适应不同技术水平的学习者需求。 #### 四、版权与免责声明 - **原创内容保护**:明确规定了网站原创内容的版权归属,并强调了转载时应...

    程序员资料系列之CSDN经典帖子及文档合辑2

    这个合辑可能由火凤凰兄弟精心整理并分享,旨在帮助程序员们提升技能,补全学习路径,同时也体现了互联网社区资源共享的精神。 DELPHI是一种基于对象 Pascal 的集成开发环境(IDE),由Embarcadero Technologies...

    python conda操作方法

    - 对于那些位于复杂路径下的自定义模块或项目,可以使用`sys.path.append(something)`临时将路径添加到Python搜索模块的路径集中,其中`something`是你的项目路径。 - 一种更持久的方法是,在虚拟环境的`Lib/site-...

    Qt教程及软件(超级浅显易懂,非常适合初学者)

    还涉及到了Qt 2D绘图的各种方面,比如绘制简单图形、渐变填充、文字、路径、图片、坐标系统以及更高级的图形视图框架。数据库方面,教程讲述了如何在Qt中使用MySQL、执行SQL语句、以及Qt的数据库模型,如...

    Java实现文件下载

    - 在`doGet`方法中,获取到请求参数(通常是文件路径)。 - 使用`File`类创建一个文件对象,然后通过`FileInputStream`读取文件内容。 - 设置响应头信息,包括`Content-Type`(表示文件类型),`Content-...

Global site tag (gtag.js) - Google Analytics