java web 开发中,获取绝对路径,没有打出war包时可以,打成war包后就成null

java web 开发中,获取绝对路径,没有打出war包时可以,打成war包后就成null,第1张

你应该在项目中(war)开发的时候,就配置一个 configproperties 的文件,专门用来定义这些固定的路径或参数。

然后,你在程序中或页面中使用的时候,直接通过加载这个 configproperties 文件内容到一个 ResourceBundle 中,然后通过 ResourceBundle 读这个内容里面定义的参数名来处理。

如:

ResourceBundle config = (这里加载的方法网上找一下,忘记了);

String path = configgetProperty("real-path");

1、添加spring-boot-starter-tomcat的provided依赖

2、添加maven-war-plugin插件

启动类还需要继承SpringBootServletInitializer类

使用命令将项目打成war包

webapps会自动发布war项目,会自动解压war包。

通过这样的方式会有一个缺点,访问路径下必须加上一个项目名称。

例如:在编码环境下,访问主页的路径是如下

>

weblogic启动,不会象tomcat那样将war解开吧。在war的当前目录是没有解开的内容。你在weblogic的控制台中能够看到war的存在吗?如果是能过控制台布署的,一般是没有问题的。

通常的网站,很多是以war包形式发布的

首先要求制作war包的环境安装j2sdk-142以上版本

比如,安装了Plesk的服务器,就都已经具有了j2sdk

切换到j2sdk的bin目录,找到jar命令

在linux上,jar命令位于:/usr/java/j2sdk142/bin

在win上,jar命令位于:C:\Program Files\SWsoft\Plesk\Additional\JDK\bin

执行jar -cvf 将要生成的包名war 要压缩的目录名

例如,要压缩C:\test目录下的子目录和jsp文件

则先切换到jar文件所在的路径,键入如下命令:c:cd c:\testjar -cvf testwar

即可在当前目录下得到testwar

随后可以把testwar上传到服务器

在TOMCAT中部署war

1、将war文件拷贝到tomcat目录\webapps\ 下。

2、将必要的jar文件拷贝到tomcat目录\lib\ 下。

3、修改tomcat目录\conf\下的serverxml。

<!-- Tomcat Manager Context --

<Context path="/manager" docBase="manager" debug="0"privileged="true"/

将这段代码中的

<Context path="/manager" docBase="manager" debug="0" privileged="true"/

拷贝一下并修改:path="" 为war路径,docBase=""为你的war的文件名。

4、完毕,启动tomcat

在java中获得文件的路径在我们做上传文件 *** 作时是不可避免的。

web 上运行

1:thisgetClass()getClassLoader()getResource("/")getPath();

thisgetClass()getClassLoader()getResource("")getPath(); 得到的是 ClassPath的绝对URI路径。

如:/D:/jboss-422GA/server/default/deploy/hpwar/WEB-INF/classes/

SystemgetProperty("userdir");

thisgetClass()getClassLoader()getResource("")getPath(); 得到的是 项目的绝对路径。

如:/D:/jboss-422GA/server/default/deploy/hpwar

2:thisgetClass()getResource("/")getPath();

thisgetClass()getResource("")getPath(); 得到的是当前类 文件的URI目录。

如:/D:/jboss-422GA/server/default/deploy/hpwar/WEB-INF/classes/com/jebel/helper/

thisgetClass()getResource("")getPath(); X 不 能运行

3:ThreadcurrentThread()getContextClassLoader()getResource("/")getPath()

ThreadcurrentThread()getContextClassLoader()getResource("")getPath() 得到的是 ClassPath的绝对URI路径。

如:/D:/jboss-422GA/server/default/deploy/hpwar/WEB-INF/classes/

ThreadcurrentThread()getContextClassLoader()getResource("")getPath() 得到的是 项目的绝对路径。

如:/D:/jboss-422GA/server/default/deploy/hpwar

在本地运行中

1:thisgetClass()getClassLoader()getResource("")getPath();

thisgetClass()getClassLoader()getResource("")getPath(); 得到的是 ClassPath的绝对URI路径。

如:/D:/myProjects/hp/WebRoot/WEB-INF/classes

thisgetClass()getClassLoader()getResource("")getPath(); X 不 能运行

2:thisgetClass()getResource("")getPath();

thisgetClass()getResource("")getPath(); 得到的是当前类 文件的URI目录。

如:/D:/myProjects/hp/WebRoot/WEB-INF/classes/com/jebel/helper/

/D:/myProjects/hp/WebRoot/WEB-INF/classes/ 得到的是 ClassPath的绝对URI路径。

如:/D:/myProjects/hp/WebRoot/WEB-INF/classes

3:ThreadcurrentThread()getContextClassLoader()getResource("")getPath()

ThreadcurrentThread()getContextClassLoader()getResource("")getPath() 得到的是 ClassPath的绝对URI路径。。

如:/D:/myProjects/hp/WebRoot/WEB-INF/classes

ThreadcurrentThread()getContextClassLoader()getResource("/")getPath() X 不 能运行

最后

在Web应用程序中,我们一般通过ServletContextgetRealPath("/")方法得到Web应用程序的根目录的绝对路径。

还有requestgetContextPath(); 在Weblogic中要用requestgetServletContext()getContextPath();但如果打包成war部署到Weblogic服务器,项目内部并没有文件结构的概念,用这种方式是始终得到null,获取不到路径,目前还没有找到具体的解决方案。

以上就是关于java web 开发中,获取绝对路径,没有打出war包时可以,打成war包后就成null全部的内容,包括:java web 开发中,获取绝对路径,没有打出war包时可以,打成war包后就成null、Tomcat部署war项目、怎么得到部署在weblogic下war包里面的文件夹路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存