应用绝对路径与相对路径

巴扎黑
发布: 2016-12-20 16:27:29
原创
1101 人浏览过

这个问题就得看你的配置文件放在哪里啦,如果放在了项目的Classes目录(或子目录)下,你可以用**.Class.getResource('相对路径')来获取配置文件路径.如果是其他目录,那你只能在项目启动时通过ServletContext获取项目根目录+配置文件的目录来确定路径.并把路径放到类文件可以引用的地方啦. 
以下是我在做项目时写的一个用于获取路径的类,写的可能不太好.但还是希望能对你有所帮助: 
package com.example.web; 

import java.io.File; 
import java.net.URL; 

import javax.servlet.ServletContext; 
import javax.servlet.http.HttpServletRequest; 

/** 
* 路径获取类 
* */ 
public class WebPath { 
/** 
  * 获取项目根目录的绝对路径 
  * 
  * @return 如:F:\TongJianpeng\J2EEUtil 
  * */ 
public static String getAbsolutePathWithProject() { 
  return System.getProperty("user.dir"); 


/** 
  * 获取项目所在盘符 
  * */ 
public static String getDriverPathWithProject() { 
  return new File("/").getAbsolutePath(); 


/** 
  * 获取项目根目录的绝对路径 
  * 
  * @return 项目根目.例如
F:\tomcat\webapps\J2EEUtil\ 
  * */ 
public static String getAbsolutePathWithWebProject( 
   HttpServletRequest request) { 
  return request.getSession().getServletContext().getRealPath("/"); 


/** 
  * 获取项目根目录下的指定目录的绝对路径 
  * 
  * @param 项目根目下的指定目录 
  *            .例如:/login/ 
  * @return 项目根目下的指定目录.例如:
F:\tomcat\webapps\J2EEUtil\login\ 
  * */ 
public static String getAbsolutePathWithWebProject( 
   HttpServletRequest request, String path) { 
  return request.getSession().getServletContext().getRealPath(path); 


/** 
  * 获取项目根目录的绝对路径 
  * 
  * @return 项目根目.例如
F:\tomcat\webapps\J2EEUtil\ 
  * */ 
public static String getAbsolutePathWithWebProject(ServletContext context) { 
  return context.getRealPath("/"); 


/** 
  * 获取项目根目录下的指定目录的绝对路径 
  * 
  * @param 项目根目下的指定目录 
  *            .例如:/login/ 
  * @return 项目根目下的指定目录.例如:
F:\tomcat\webapps\J2EEUtil\login\ 
  * */ 
public static String getAbsolutePathWithWebProject(ServletContext context, 
   String path) { 
  return context.getRealPath(path); 


/** 
  * 获取项目classpath目录的绝对路径 
  * 
  * @return classes目录的绝对路径
 
  *         file:/F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/ 
  * */ 
public static URL getAbsolutePathWithClass() { 
  return WebPath.class.getResource("/"); 


/** 
  * 获取项目classPath目录下的指定目录的绝对路径 
  * 
  * @param path 
  *            classes目录下的指定目录.比如:/com/ 
  * @return file:/F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/com/ 
  * */ 
public static URL getAbsolutePathWithClass(String path) { 
  return WebPath.class.getResource(path); 


/** 
  * 获取指定类文件的所在目录的绝对路径 
  * 
  * @param clazz 
  *            类 
  * @return 类文件的绝对路径.例如:
包com.Aries.Util.Web下的Main.java类.
 
  *         路径为:file:/ 
  *         F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/com/Aries/Util/Web/ 
  * */ 
public static URL getAbsolutePathWithClass(Class clazz) { 
  return clazz.getResource(""); 

}

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板