在 Tomcat 中部署项目后,我试图在我的 webapp
文件夹中获取各种 JSP 文件的文件路径。这是我的目录结构:
-project
|-top
||-java
|||-com
||||-...
|||-filter
||||-MyFilter.java
||-webapp
|||-jsp
||||-MyJSP.jsp
因此,当代码命中我的过滤器时,doFilter()
方法内的 MyJSP.jsp
的路径是什么?我正在尝试编辑文件的内容,因此我需要能够执行 read
和 write
操作。
当我执行 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
之外什么都没有,我我不允许在里面放任何东西。
如有任何帮助,我们将不胜感激!
最佳答案
您可能必须使用 request.getServletContext().getRealPath("/jsp/MyJSP.jsp")
。
BufferedReader br = new BufferedReader(new FileReader(request.getServletContext().getRealPath("/jsp/MyJSP.jsp")));
关于java - 在 Tomcat 中部署后来自 servlet 过滤器的 JSP 文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44892453/