编译JSP Java(* __ jsp.java)文件在哪里?

我在我的网站试图渲染的一个jsp文件中获得了javax.servlet.jsp.JspExceptionsurvey.jsp )。 但是,堆栈跟踪没有给出jsp中失败的特定行,而是它失败的行号( survey_jsp.java:787 ),它似乎是已编译的JSP文件。 我在哪里可以找到这样的文件,以便我知道抛出此exception的行是什么?

谢谢

编辑:如果你正在使用tomcat,这些文件存在于/work目录中,如下面的评论所示。

默认情况下,已编译的JSP文件位于Tomcat环境的/work文件夹中。 应该有一个子文件夹Catalina ,后者又有一个子文件夹,代表默认为localhost的域名。 反过来应该是项目文件夹,该文件夹又包含包层次结构org.apache.jsp ,其中包含已编译的JSP文件。

 Tomcat |-- backup |-- bin |-- conf |-- lib |-- logs |-- temp |-- webapps `-- work `-- Catalina `-- localhost `-- projectname `-- org `-- apache `-- jsp |-- survey_jsp.class `-- survey_jsp.java <--- here 

具体问题无关 ,在JspException应该有一个根本原因部分,它通常包含有关问题真正根本原因的更多细节。 在堆栈跟踪中进一步阅读。 那么,您是否知道将原始Java代码放在JSP文件中被认为是一种不好的做法 ? 正如您现在遇到的那样,它使问题更难调试。

如果页面没有编译,你应该在/work/*下面找到它。 完整路径取决于您的环境。 如果你在那里找不到它,你应该在调试模式下启动你的Tomcat,它肯定会使.java文件无法编译(Tomcat 7)。

我正在使用Intellij来学习JavaEE,为了在jsp转换为servlet时查看一些function,我还必须找到该文件。

我没有在/work/*下面找到它。 我终于发现该文件位于~/.IntelliJIdea15/system/tomcat/文件夹下(树形结构显示来自~/.IntelliJIdea15/system/tomcat/ )!

 Name related to project name |-- conf |-- logs `-- work `-- Catalina `-- localhost `-- projectname and type `-- org `-- apache `-- jsp |-- survey_jsp.class `-- survey_jsp.java <--- here 

如果您仍然无法在Intellij的主文件夹下找到它,您可能需要尝试使用

 find . | grep 'nameOfYourJsp_jsp.java' 

在合适的父文件夹中。

在我的情况下,编译的jsps在

  /var |--cache |-- tomcat8 |--Catalina |--localhost |--projectname |-- (etc...) 

来自oracle文档

javax.servlet.jsp.JspException :: JSP引擎已知的一般exception; 未捕获的JspExceptions将导致调用errorpage机制。

每当我在代码中使用scriplets时,我甚至习惯了这个

我的建议:不要使用脚本,即使它看起来似乎很容易开发代码,但在所有应有的方面,它是一个很大的头 – 难以维护一个scriplets代码。 相信我

C:\用户\ ADMIN \日食workspace.metadata.plugins \ org.eclipse.wst.server.core \ TMP0 \工作\卡塔利娜\本地主机\ JspDemo \组织\阿帕奇\ JSP

根据您的项目名称更改链接。