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

标签 java servlets

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

目前,如果我这样做

System.out.println(httpServletRequest.getRequestURI());
File f = new File( httpServletRequest.getRequestURI() ); 
System.out.println( f.exists);

我得到:

/test.js
false

即使文件存在。

最佳答案

how do I check if the corresponding .js.gz file exists in the WEB-INF directory from the servlet?

使用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");
}

有关更多信息,请阅读下面的评论。

关于java - 如何从 Java Servlet 检查请求的文件是否存在于 WEB-INF 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24845753/

相关文章:

Java Generics - 可比较的接口(interface)

java - maven > 混合 scala/Java 项目 > scala : error: value toScan is not a member of object org. apache.hadoop.hbase.protobuf.ProtobufUtil

java - 如何在 java 中将文本绑定(bind)到 JLabel?

java - java httpssession的生命周期

servlets - 如何在没有 web.xml 的情况下以编程方式配置 <context-param>

java - 触发setCursor方法后光标图标没有变化

java - 解析字符串中的状态模式用法

java - session 超时回调

java - 通过 Apache Commons 上传流文件时,数据存储在哪里?

java - tomcat jsp容器中将jsp代码转换为servlet代码的类是什么?