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. 理解Linux系统负荷(WDCP系统后台参数之一)

    一.查看系统负荷 如果你的网站很卡,可能是因为服务器很慢,,你或许想查看一下,它的工作量是否太大了. 在Linux系统中,我们一般使用uptime命令查看(w命令和top命令也行).(另外,它们在苹果 ...

  2. 11 redis之rdb快照持久化

    一:Redis持久化配置 Redis的持久化有2种方式[快照,是日志] 二:Rdb快照的配置选项 save 900 1 // 900内,有1条写入,则产生快照 save 300 1000 // 如果3 ...

  3. FAT12中,如何定位大于一个扇区(512B)的文件内容

    [0]README 0.1)本文旨在于 演示在FAT12中, 如何取定位大于 512B 的文件内容,和查看它: 0.2)如何制作FAT12文件系统,以及如何向文件中添加temp.txt文件,参见: { ...

  4. 《Java设计模式》之构建者模式

    概述:          构造者模式(Builder Pattern):构造者模式将一个复杂对象的构造过程和它的表现层分离开来.使得相同的构建过程能够创建不同的表示,又称为生成器模式.      Bu ...

  5. Golang程序性能分析

    前言 程序性能分析我相信是每个程序员都会遇到的问题,比如说一个程序的CPU为什么占用这么高?有没有优化的空间?又比如程序出现了内存泄漏如何排查等等.如果是C++程序会借助于Google pprof c ...

  6. JSON格式之GSON解析

    JSON格式之GSON解析 最近在做websocket相关,项目需要JSON解析.相较之下感觉google的GSON解析不错. JAVA后台 Gson提供了fromJson()方法来实现从Json相关 ...

  7. 微信URL有效性验证

    1.填写配置项:填写 URL 和 Token 点击提交按钮  微信服务器会以get方式请求到所指定的URL,在此URL中进行URL的有效性验证 2.URL有效性的验证: if ("get&q ...

  8. 九度OJ 1031:xxx定律 (基础题)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6058 解决:3816 题目描述:     对于一个数n,如果是偶数,就把n砍掉一半:如果是奇数,把n变成 3*n+ 1后砍掉一半,直到该数 ...

  9. Refused to set unsafe header

    Refused to set unsafe header Refused to set unsafe header "Host"waitServerDeal @ tGet.html ...

  10. iOS 流布局 UICollectionView使用(简单使用)

    简介 UICollectionView是iOS6之后引入的一个新的UI控件,它和UITableView有着诸多的相似之处,其中许多代理方法都十分类似.简单来说,UICollectionView是比UI ...