java - 在 Tomcat 中部署后来自 servlet 过滤器的 JSP 文件路径

标签 java jsp tomcat servlets servlet-filters

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

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

因此,当代码命中我的过滤器时,doFilter() 方法内的 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 之外什么都没有,我我不允许在里面放任何东西。

如有任何帮助,我们将不胜感激!

最佳答案

您可能必须使用 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/

相关文章:

eclipse - 警告 : No mapping found for HTTP request with URI [/projectdemo/WEB-INF/jsp/results. jsp] 在 DispatcherServlet 中,名称为 'dispatcher'

java - Netbeans v11.2 和 Oracle JDK13 javadocs 问题

java - 如何在单击按钮时在 JSP 中进行更新查询而不重新加载窗口?

java - 确定可以容纳字符串值的最小浮点类型

java - 创建弹出消息

java - 将 MySql DateTime 类型转换为更友好的类型

apache - 设置 SOAP 环境?

Tomcat 服务器崩溃

java - 线程不可理解的行为

java - 如何将包含特殊字符的小数点后两位数字的字符串数字四舍五入?