Java web项目,在.java程序中如何获取webapp路径

Java web项目,在.java程序中如何获取webapp路径,第1张

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的方法详解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9487742.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存