【问题标题】:JSP filepath from servlet filter after deploying in Tomcat在Tomcat中部署后来自servlet过滤器的JSP文件路径
【发布时间】:2017-12-07 03:05:18
【问题描述】:

在 Tomcat 中部署项目后,我试图在我的 webapp 文件夹中获取各种 JSP 文件的文件路径。这是我的目录结构:

-project 
|-top
||-java
|||-com
||||-...
|||-filter
||||-MyFilter.java
||-webapp
|||-jsp
||||-MyJSP.jsp

那么,当代码命中我的过滤器时,MyJSP.jsp 方法内部的 MyJSP.jsp 路径是什么?我正在尝试编辑文件的内容,所以我需要能够进行readwrite 操作。

当我执行request.getServletPath() 时,它会显示路径:/jsp/MyJSP.jsp。但是,当我尝试使用以下代码阅读时:

String str = "";
BufferedReader br = new BufferedReader(new FileReader("/jsp/MyJSP.jsp"));

while ((str = br.readLine()) != null) {
    System.out.println(str );
}

br.close();

我收到了FileNotFoundException。我究竟做错了什么?这不是jsp文件部署到Tomcat后的实际路径吗?

另外,我注意到一些其他问题说将文件放在WEB-INF 文件夹中,但是,除了web.xml 之外,该文件夹中没有任何内容,并且我不允许在其中放置任何东西。

任何帮助将不胜感激!

【问题讨论】:

    标签: java jsp tomcat servlets servlet-filters


    【解决方案1】:

    您可能必须使用request.getServletContext().getRealPath("/jsp/MyJSP.jsp")

    BufferedReader br = new BufferedReader(new FileReader(request.getServletContext().getRealPath("/jsp/MyJSP.jsp")));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-22
      • 2016-09-13
      • 2015-03-23
      • 2012-12-08
      • 2020-05-15
      • 2013-02-11
      • 1970-01-01
      • 2011-09-11
      相关资源
      最近更新 更多