title: 项目下的路径问题

tags:

grammar_cjkRuby: true

在javaee的项目中,存取文件,解析xml和properties文件,以及项目中的文件,都需要获取路径,常用的一些路径收集如下:

一、src文件夹下的文件,编译后 的classes文件夹

1.直接获取src文件夹下的文件的方法如下:(同样路径可以是“com/huawei/db.properties”)

   InputStream is = DemoFilePath.class.getClassLoader().getResourceAsStream("db.properties");

其中的DemoFilePath为类名,而且只能实用类名,不能实用Object。获取src文件下的文件的输入流都可以通过这个方法来获取

还有一种方法和原理是一样的,可以实用类名或者Object超类也是通过类加载器来获取只是前面需要增加-- “/” --这个符号如下:(同样路径可以是"/com/huawei/test.txt")

InputStream is=Object.class.getResourceAsStream("/test.txt");//保险的做法还是把Object换成类本身的名字
InputStream is = getClass().getResourceAsStream("/db2.properties");//但是这个方法不能子啊静态类中使用

2.获取classpath的路径,就是src编译后了classes文件夹的路径

DemoFilePath.class.getClassLoader().getResource("com/renboqieqie/db4.properties").getPath()
//或者
Thread.currentThread().getContextClassLoader().getResource("").getPath()

二、WebConten文件夹下

1.在jsp中获取

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>1.JSP</title>
</head>
<body>
<h1>获取文件的绝对路径</h1>
<h2>application.getRealPath(file)</h2>
<%=application.getRealPath("contact.xml") %><br/>
<%=application.getRealPath("db.properties") %><br/>
<%=application.getRealPath("index.html") %><br/> <hr/>
<h1>获取文件的绝对路径</h1>
<h2>request.getRequestURI()</h2>
<%=request.getRequestURI() %>
<hr/>
<h1>获取当前jsp页面的路径</h1>
<h2>request.getContextPath()</h2>
<%=request.getContextPath() %>
<hr/>
<h1>获取当前项目的路径</h1>
<h2>request.getServletPath()</h2>
<%=request.getServletPath() %>
<hr/>
</body>
</html>




以下是摘抄的原文

一、用Jsp获取

1、获取文件的绝对路径

String file="文件";(例如:data.mdb)

String path=application.getRealPath(file);

结果:

E:\java_web\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\myWebsite\文件

2、获取文件的绝对路径

String p2=request.getRequestURI();

结果:

E:\java_web\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\myWebsite\文件

3、获取当前jsp页面的路径

String p3=request.getContextPath();

结果:

/myWebsite/index.jsp

4、获取当前项目的路径

String p4=request.getServletPath();

结果:

/myWebsite

二、用Java类获取

1、获取Eclipse路径

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

结果:

D:\StudySystem\JavaWeb\3-eclipse-jee-indigo-win32\eclipse

2、获取当前的classpath路径

String a2=类名.class.getResource("").toString();

String a3=DBConnection.class.getResource("/").toString();

String a4=DBConnection.class.getClassLoader().getResource("").toString();

String t=Thread.currentThread().getContextClassLoader().getResource("").getPath();

打印出来分别是:

file:/E:/java_web/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/myWebsite/WEB-INF/classes/com/site/db/

file:/E:/java_web/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/myWebsite/WEB-INF/classes/

file:/E:/java_web/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/myWebsite/WEB-INF/classes/

/E:/java_web/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/myWebsite/WEB-INF/classes/

3、获取文件的绝对路径

如果要获取WebContent目录下的文件绝对路径怎么办?可以用下面的方法

String t=Thread.currentThread().getContextClassLoader().getResource("").getPath();

int num=t.indexOf(".metadata");

String path=t.substring(1,num).replace('/', '\')+"项目名\WebContent\文件";

结果是:

E:\java_web\workspace\项目名\WebContent\文件

三、用servlet获取

1、获取项目的绝对路径

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

结果:

E:\java_web\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\myWebsite

2、获取浏览器地址

request.getRequestURL()

结果:

http://localhost:8080/myWebsite/QuestionServlet

3、获取当前文件的绝对路径

request.getSession().getServletContext().getRealPath(request.getRequestURI())

结果:

E:\java_web\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\myWebsite\myWebsite\QuestionServlet

java项目文件的路径问题的更多相关文章

  1. java中获取路径的几种基本的方法

    package com.ygh.blog.realpath; import java.io.File; import java.io.IOException; import java.io.Input ...

  2. 【04-10】java中的路径

    java中的路径 System.getProperty("user.dir")  获取工程的绝对路径 Class.class.getClass().getResource(&quo ...

  3. java通过文件路径读取该路径下的所有文件并将其放入list中

    java通过文件路径读取该路径下的所有文件并将其放入list中   java中可以通过递归的方式获取指定路径下的所有文件并将其放入List集合中.假设指定路径为path,目标集合为fileList,遍 ...

  4. JAVA中获取路径

    内容来自于snannan_268 关键字: java中获取路径 JAVA中获取路径: 1.jsp中取得路径:   以工程名为TEST为例: (1)得到包含工程名的当前页面全路径:request.get ...

  5. Java文件获取路径方式:

    转自:http://blog.csdn.net/appleprince88/article/details/11599805# 谢谢! 由于经常需要获取文件的路径,但是比较容易忘记,每次需要总需要查询 ...

  6. paip兼容windows与linux的java类根目录路径的方法

    paip兼容windows与linux的java类根目录路径的方法 1.只有 pathx.class.getResource("")或者pathx.class.getResourc ...

  7. Java中的路径问题

    Java中的路径问题 代码说明,如下: package com.merlin.test; import java.io.InputStream; public class Test { public ...

  8. java 使用相对路径读取文件

    java 使用相对路径读取文件 1.java project环境,使用java.io用相对路径读取文件的例子: *目录结构:  DecisionTree            |___src      ...

  9. Java的绝对路径和相对路径

    Java的绝对路径和相对路径 参考:http://blog.csdn.net/u011225629/article/details/46872775 1. 绝对路径 以根部件开始的路径是绝对路径,比如 ...

随机推荐

  1. Android之怎样全屏显示

    三种方法: 1 自己定义主题(见设置自己定义样式和主题一节) http://blog.csdn.net/wei_chong_chong/article/details/47438907 2 使用系统自 ...

  2. erlang中遍历取出某个位置的最大值

    例:有这么一个列表,A = [["abc","bds",3],["ssdss","dddx",2],["sfa ...

  3. JavaScript之this的工作原理

    JavaScript 有一套完全不同于其它语言的对 this 的处理机制. 在五种不同的情况下 ,this 指向的各不相同. 1.全局范围内 当在全部范围内使用 this,它将会指向全局对象. 2.函 ...

  4. PHP百分号转小数

    <?php $a = "20.544545%"; echo (float)$a/100; ?>

  5. EasyDSS流媒体视频实时回传与录像管理解决方案

    一.背景 1.1 方案背景 随着互联网基础设施建设的不断完善和发展,带宽的不断提速,尤其是光纤入户,4G/5G/NB-IoT各种技术的大规模商用,视频在各行各业越来越受到重视,无论是传统的视频媒体转向 ...

  6. JAVA解析XML之SAX方式

    JAVA解析XML之SAX方式 SAX解析xml步骤 通过SAXParseFactory的静态newInstance()方法获取SAXParserFactory实例factory 通过SAXParse ...

  7. sed相关

    1 global flag sed 's/xxx/xxx/' inputfile,如果没有带global flag g的话,匹配替换的只是inputfile中的每一行的第一个匹配项.如果带了g的话,才 ...

  8. 云服务器 ECS Linux CentOS 修改内核引导顺序

    由于 CentOS 7 使用 grub2 作为引导程序,所以和 CentOS 6 有所不同,并不是修改 /etc/grub.conf 来修改启动项,需要如下操作: 1. 查看系统内部有多少个内核: c ...

  9. ZOJ - 4020 Traffic Light 【BFS】

    题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4020 题意 给出一张地图 以及起点和终点 求是否能从起点走到终点 ...

  10. spring-boot5

    Spring Boot集成MyBatis: (1)新建maven project;取名为:spring-boot-mybatis (2)在pom.xml文件中引入相关依赖: (3)创建启动类App.j ...