如何从 Java Servlet 检查请求的文件是否存在于 WEB-INF 中?

Cli*_*ote 5 java servlets

我正在编写一个过滤器,它将.js文件重定向到其相应的.js.gz文件(如果存在)。所以 foo.js 会转到 foo.js.gz。问题是,如何从servlet检查WEB-INF目录中是否存在相应的.js.gz文件?

目前,如果我这样做

System.out.println(httpServletRequest.getRequestURI());
File f = new File( httpServletRequest.getRequestURI() ); 
System.out.println( f.exists);
Run Code Online (Sandbox Code Playgroud)

我得到:

/test.js
false
Run Code Online (Sandbox Code Playgroud)

即使文件存在。

Bra*_*raj 4

如何从 servlet 中检查 WEB-INF 目录中是否存在相应的 .js.gz 文件?

使用ServletContext#getRealPath()方法。

File file = new File(request.getServletContext().getRealPath("/WEB-INF/foo.js.gz"));
System.out.println(file.getAbsolutePath());
if(file.exists()){
    System.out.println("file exists");
}
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息,请阅读下面的评论。