servletContext.getRealPath(" /")没有在Windows上为Tomcat 8.0.44提供所需的路径

时间:2017-05-26 10:09:24

标签: java ajax spring-mvc tomcat

我有一个Web应用程序,我需要创建一个目录,然后将该目录路径作为响应返回,以用于其他ajax处理。现在,我已经开发了应用程序并在我的mac机器上进行了测试,它的工作方式就像魅力一样,但当我将它部署在具有相同tomcat版本的Windows机器上时,目录路径并不理想。

当我尝试创建目录时,我发现分隔符是个问题。这就是我编码的方式:

String resultDir = sc.getRealPath("/");
resultDir = resultDir+"screenshots/travel/demo";

这里resultDir存储了我在ajax调用哪个目录路径作为参数后需要在网页上显示的截图。

现在,我将正斜杠更改为File.separator,因此resultDir变为

resultDir = resultDir+"screenshots"+File.separator+"travel"+File.separator+"demo"+File.separator;

来自服务器的响应出现在Windows机器上:

C:\Users\roger\Documents\tomcat\webapps\myapp\screenshots\travel\demo\

但是在进行ajax调用时,它会在控制台上出现错误的url错误。

它适用于Mac,但在Windows上出现问题。

1 个答案:

答案 0 :(得分:0)

不是从servlet上下文获取路径,而是尝试从请求中获取它 $this->validate($request, [ 'document_date_created' => 'required', 'document' => 'required' ], [ 'document_created_at.required' => 'Sample message', 'document.required' => 'Another Sample Message' ] );