String t=ThreadcurrentThread()getContextClassLoader()getResource("")getPath();
int num=tindexOf("metadata");
String path=tsubstring(1,num)replace('/', '\\')+"项目名\\WebContent\\文件";
复制,亲测有效。
楼上的正解,自己写个初始化servlet,在init方法中,获取上下文路径,然后存到一个类的静态变量中,
如:
String contextPath = filterConfiggetServletContext()getContextPath();//上下文路径
ConstantCONTEXTPATH = contextPath;
然后在业务层中,使用ConstantCONTEXTPATH获取路径
以点到面,知道了web中getContextPath()这种获取路径的方式,显然其他的方式的是可以以此类推的。常说,工作学习找共同点嘛。 上一段我们也提高getContextPath()的含义,是jsp中获取路径的一种方式,返回当前页面所在的应用的名字。知其然知其所以然,知道它大体上的含义,看看在项目中是如何使用的
String path = requestgetContextPath();
String basePath = requestgetScheme()+"://"+requestgetServerName()+":"+requestgetServerPort()+path+"/";">
在程序中我们一般这样使用。说到了这里,我们可以看看request常用的方法:
requestgetSchema(),返回的是当前连接使用的协议,一般应用返回的是>
假设有一个项目名为:report_emp
requestgetContextPath()获得的是当前的项目名 /report_emp,
要想获得项目实际在磁盘中存贮路径可以使用requestgetSession()getServletContext()getRealPath("/");
本地资源管理器而言:
绝对路径:是从盘符开始的路径,磁盘上真正的路径的,例如:E:\帮助文档\Jquery\jqAPI;
相对路径:是从当前路径开始的路径,如当前路径为E:\帮助文档,则Jquery\jqAPI为相对路径;
就web站点而言:
假如我们在report_emp的admin/loginjsp中访问了report_emp/admin/images/logogif的
绝对路径:以Web 站点根目录为参考基础的目录路径;
在loginjsp中的src则为report_emp/admin/images/logogif
相对路径:以引用文件之网页所在位置为参考基础,而建立出的目录路径;
在loginjsp中的src则为/images/logogif
ServletActionContext就能获得class所在路径,通过然后获取再获取父目录不就是你要的目录了吗,在web项目中获取目录只能从servletActionContext入手。或者使用request。requestgetServletContext()getRealPath("")
平时写程序的时候,很多时候提示文件找不到,而抛出了异常,现在整理如下
一 相对路径的获得
说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目)
String relativelyPath=SystemgetProperty("userdir");
上述相对路径中,java项目中的文件是相对于项目的根目录
web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于 tomcat安装目录\bin)
二 类加载目录的获得(即当运行时某一类时获得其装载目录)
11)通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)
InputStream is=TestActionclassgetClassLoader()getResourceAsStream("testtxt");
(testtxt文件的路径为 项目名\src\testtxt;类TestAction所在包的第一级目录位于src目录下)
上式中将TestAction,testtxt替换成对应成相应的类名和文件名字即可
12)通用方法二 (此方法和11中的方法类似,不同的是此方法必须以'/'开头,
InputStream is=Test1classgetResourceAsStream("/testtxt");
(testtxt文件的路径为 项目名\src\testtxt,类Test1所在包的第一级目录位于src目录下)
三 web项目根目录的获得(发布之后)
1 从servlet出发
可建立一个servlet在其的init方法中写入如下语句
ServletContext s1=thisgetServletContext();
String temp=s1getRealPath("/"); (关键)
结果形如:D:\工具\Tomcat-60\webapps\002_ext\ (002_ext为项目名字)
如果是调用了s1getRealPath("")则输出D:\工具\Tomcat-60\webapps\002_ext(少了一个"\")
2 从>
在Java Web项目中,经常要在项目开始运行时启动一个线程,每隔一定的时间就运行一定的代码,比如扫描数据库的变化等等。要实现这个功能,可以现在webxml文件中定义一个Listener,然后在这个Listener中启动一个线程,在线程里面实现功能。
1 自定义Listener
在Struts+Spring+Hibernate的Web项目中,webxml里面一般都会有这样的代码:
<listener>
<listener-class>orgspringframeworkwebcontextContextLoaderListener</listener-class>
</listener>
这几句代码使得Web项目的容器(也就是Web服务器,比如Tomcat)在项目启动时实例化了一个orgspringframeworkwebcontextContextLoaderListener类。
类似的,我们也可以在webxml里面自己定义一个Listener,让Web服务器去实例化:
<xml version="10" encoding="UTF-8"><web-app xmlns:xsi=">
以上就是关于Java web项目,在.java程序中如何获取webapp路径全部的内容,包括:Java web项目,在.java程序中如何获取webapp路径、tomcat已部署javaweb—SSH2项目,不用request或其它9大内置对象,不经action 如何获取上下文路径、web项目中,request的方法详解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)