获取web项目根目录获取

Java web项目中获取WebRoot绝对目录_小组_ThinkSAAS
Java web项目中获取WebRoot绝对目录
Java web项目中获取WebRoot绝对目录
具体获取方式:
* @return WebRoot目录的绝对路径
public static String getWebRootAbsolutePath() {
String path =
String folderPath = Path.class.getProtectionDomain().getCodeSource()
.getLocation().getPath();
if (folderPath.indexOf("WEB-INF") & 0) {
path = folderPath.substring(0, folderPath
.indexOf("WEB-INF/classes"));
PHP开发框架
缓存Memcache
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
手机客户端
ThinkSAAS接收任何功能的Iphone(IOS)和Android手机的客户端定制开发服务
让ThinkSAAS更好,把建议拿来。> 获取JAVA[WEB]项目有关路径的几种方法
获取JAVA[WEB]项目有关路径的几种方法
wangdongfang & &
发布时间: & &
浏览:38 & &
回复:0 & &
悬赏:0.0希赛币
获取JAVA[WEB]项目相关路径的几种方法
在jsp和class文件中调用的相对路径不同。 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty("user.dir")获取你工程的绝对路径。另:在Jsp,Servlet,Java中详细获得路径的方法!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 2.在类中取得路径: (1)类的绝对路径:String u=Class.class.getClass().getResource("/").getPath() 结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/   //str会得到这个函数所在类的路径
String str = u.toString();
//截去一些前面6个无用的字符
str=str.substring(6,str.length());
//将%20换成空格(如果文件夹的名称带有空格的话,会在取得的字符串上变成%20)
str=str.replaceAll("%20", " ");
//查找“WEB-INF”在该字符串的位置
int num = str.indexOf("WEB-INF");
//截取即可
str=str.substring(0, num+"WEB-INF".length());(2)得到工程的路径:System.getProperty("user.dir") 结果:D:/TEST 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
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&增值电信业务经营许可证湘B2-以前好像使用过,但是很久没用了,结果给忘记了。最近在项目当中因为自己定义了一个xml文件,测试的时候无所谓,结果当要发布的时候竟然发现无法方便的获取自己配制的这个文件的相对路径 ,晕。。但是记得当时解决过这个问题,就是想不起来,在网上查了资料结果就不是写的一知半解就是写的很乱根本就没有写的明白点的,因自己受过苦,希望给与那些还在用spring框架但是因无法方便的使用相对路径的人方便。 package test.org.spring.import java.io.IOEimport junit.framework.TestCimport org.springframework.context.ApplicationCimport org.springframework.context.support.FileSystemXmlApplicationCimport org.springframework.core.io.Rpublic class ResourceBeanTest extends TestCase {
public void testResource() throws IOException{
ApplicationContext context=new FileSystemXmlApplicationContext("OperationFile/ResourceTestFile.xml");
ResourceBean d=(ResourceBean)context.getBean("resourceBean");
assertNotNull(d);
Resource r=d.getResource();
System.out.println(r.getURL().getPath()); }}测试文件&?xml version="1.0" encoding="UTF-8"?&&!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"&&beans& &bean id="resourceBean" class="test.org.spring.resource.ResourceBean"&
&property name="resource" value="WEB-INF/config.xml"/& &/bean&&/beans&spring配制文件package test.org.spring.import org.springframework.core.io.Rpublic class ResourceBean {
private R public Resource getResource() {
} public void setResource(Resource resource) {
this.resource = }}class代码。 运行一下一切都清楚了。 运行时记得吧包名改掉哦。。 其实看一下Spring源代码当中的恶core部分的Resource接口就知道了最重要的是他把String形自动的改成了Resource形 。 如果有兴趣知道其中奥妙可以看一下Spring 的源代码 在这里我就不罗嗦了[该贴被bosslee于日 15:17修改过][该贴被bosslee于日 15:18修改过]
必须将配置文件放在WEB-INF的classes的OperationFile目录下。使用Spring的web.xml的context配置不是更好吗?因为context配置会将Spring容器放入Web容器中,也就是servletContext中,这样Spring容器就有生命性,能够随着项目undeploy而消亡,防止内存泄漏。你直接通过filer读取,那么Spring容器你就只能放入静态类中,而这很容易内存泄漏的。
最佳分辨率
OpenSource
Code & 2002-155835人阅读
以工程名为/DemoWeb为例:&
访问的jsp为:http://localhost:8080/DemoWeb/test/index.jsp&
1 JSP中获得当前应用的相对路径和绝对路径&
(1)得到工程名:request.getContextPath()&
结果:/DemoWeb&
(2)得到包含工程名的当前页面全路径:request.getRequestURI()&
结果:/DemoWeb/test/testpath.jsp&
(3)得到IE地址栏地址:request.getRequestURL()&
结果:http://localhost:8080/DemoWeb/test/testpath.jsp&
(4)得到当前页面所在目录下全名称:request.getServletPath()&
结果:/test/testpath.jsp&
(5)得到页面所在服务器的全路径(实际的路径):application.getRealPath(&testpath.jsp&)&
结果:D:\Develop Files\apache-tomcat-5.5.15\apache-tomcat-5.5.15\webapps\DemoWeb\testpath.jsp&
D:\Develop Files\apache-tomcat-5.5.15\apache-tomcat-5.5.15为tomcat的安装路径&
2.java 的Class中获得相对路径,绝对路径的方法&
(1)类的绝对路径:&
System.out.println(TestPath.class.getResource(&/&).getPath());&
结果:/E:/workspace/workspace_tcc/DemoWeb/WebRoot/WEB-INF/classes/&
System.out.println(TestPath.class.getResource(&&));&
结果:file:/E:/workspace/workspace_tcc/DemoWeb/WebRoot/WEB-INF/classes/demo1/&
(2)得到工程的路径:System.getProperty(&user.dir&)&
结果:E:\workspace\workspace_tcc\DemoWeb&
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:210815次
积分:2746
积分:2746
排名:第7052名
原创:52篇
转载:74篇
评论:33条
(1)(1)(1)(1)(3)(1)(1)(1)(1)(5)(6)(6)(9)(4)(9)(14)(10)(51)(1)用心创造滤镜
扫码下载App
汇聚2000万达人的兴趣社区下载即送20张免费照片冲印
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
江西农业大学软件学院软件工程专业本科毕业,兼修管理学学位,毕业之初:英语4级,中国软考中心认证的网络工程师、软件设计师!现就职于某软件公司,我热衷于java编程,立志在两年之内成为一名优秀的软件工程师!
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(2609)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'(转)J2EE WEB项目中获取相对路径与绝对路径的方法',
blogAbstract:'  Java中使用的路径,分为两种:绝对路径和相对路径。归根结底,Java本质上只能使用绝对路径来寻找资源。所有的相对路径寻找资源的方法,都不过是一些便利方法。不过是API在底层帮助我们构建了绝对路径,从而找到资源的!  在开发Web方面的应用时, 经常需要获取服务器中当前WebRoot的物理路径。  如果是Servlet , Action , Controller, 或者Filter , Listener , 拦截器等相关类时, 我们只需要获得ServletContext, 然后通过ServletContext.getRealPath(\"/\")来获取当前应用在服务器上的物理地址。  如果在类中取不到ServletContext时,有两种方式可以做到:  1)利用Java的类加载机制:调用 XXX.class.getClassLoader().getResource(\"\"); 方法来获取到ClassPath , 然后处理获得WebRoot目录。',
blogTag:'java,j2ee,web项目,相对路径,绝对路径',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:2,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:true,
hostIntro:'江西农业大学软件学院软件工程专业本科毕业,兼修管理学学位,毕业之初:英语4级,中国软考中心认证的网络工程师、软件设计师!现就职于某软件公司,我热衷于java编程,立志在两年之内成为一名优秀的软件工程师!',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}

我要回帖

更多关于 java web获取项目名称 的文章

 

随机推荐