【问题标题】:How to get the tomcat web absolute path in java from one application to the other application in centos?如何获取java中的tomcat web绝对路径从一个应用程序到centos中的另一个应用程序?
【发布时间】:2023-03-31 20:00:01
【问题描述】:

我的 tomcat 有两个名为 webstock 和 webstockapi 的 Web 应用程序。然后两者都有一个名为 imgfold 的折叠。每次调用api并将图像文件上传到路径'webstockapi/imgfold',我必须将它们复制到另一个路径'webstock/imgfold'。调用webstockapi的api时如何获取webstock的web绝对路径。事实上,我的网络绝对路径是“/application/tomcat/webapps/webstockapi”和“/application/tomcat/webapps/webstock”。 现在我想出了一个办法,但它很复杂,而且必须有一个简单的办法。

//get the imgfold path when I call the webstockapi application
String uploadDir = session.getServletContext().getRealPath("/imgfold");
//my complex way to get the other appliction path
String destinationPicUrl=new File(session.getServletContext().getRealPath("/")).getParent()+
                     File.separatorChar +"webstock"+ File.separatorChar +"imgfold";

如何直接根据发布的web应用名称获取web绝对路径?

【问题讨论】:

    标签: java spring-mvc tomcat centos


    【解决方案1】:

    上传到 web 应用程序的文件夹是一种不好的做法——如果只是为了让备份变得异常困难的话。一旦您更新您的 webapp,所有内容都将被删除并替换为您更新的 webapp。此外,没有应用程序服务器保证 Web 应用程序甚至存储在可写文件夹中。仅出于安全原因,这是一个坏主意(例如:如果有人将 JSP 文件上传到 Web 应用程序中的文件夹中,tomcat 将愉快地执行该 JSP 中的任何上传代码)

    将两个应用程序配置为将数据存储在与应用程序不同的文件夹中。该文件夹可以成为您备份策略的一部分。如果两者都指向同一个文件夹,则不再需要来回复制文件。然后编写一个简单的下载 servlet,使图像可供全世界使用,而没有服务器端代码执行的风险。到处都有大量用于下载 servlet 的示例 - 选择一个针对遍历随机文件夹并仅从配置的文件夹返回数据的强化示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-29
      • 1970-01-01
      • 2011-01-06
      • 2017-05-29
      • 2011-03-21
      相关资源
      最近更新 更多