IntelliJ IDEA中的JSP调试
有谁知道如何在IntelliJ IDEA中调试JSP
?
当我在" JSP"文件中设置断点时,这些断点似乎从未生效。调试器从不击中它们。 IDEA似乎认为断点是有效的。我确实在放置断点的行的左侧看到了一个红点。
我在这篇文章的IntelliJ论坛中读到,JSP
文件需要位于web-inf下才能进行调试。
但是后来我也读到,放置在web-inf下的JSP
文件不会被用户直接访问。
我不确定谁是正确的。
解决方案
回答
对于问题的第二部分("用户无法直接访问放置在web-inf下的jsp文件"),这是正确的。为了允许用户访问WEB-INF文件夹中的JSP文件,需要在每个JSP页面的web.xml文件中创建servlet和servlet映射条目。
回答
对于Intellij中的JSP调试,必须按顺序进行一些配置。 Intellij始终允许我们在JSP行上添加断点的事实并不一定意味着我们已经配置了JSP调试。在下文中,我指的是Intellij 8配置。在以前的版本中,由于概念相同,我们将需要执行类似的操作。
为了启用JSP调试,我们必须执行两个步骤:在项目中设置Web应用程序配置并添加Web应用程序服务器配置。
Web应用程序配置:为了进行JSP调试,我们必须在项目结构中具有一个Web构面,指向正确的web.xml文件。根据我们所使用的Web应用程序结构的类型,Intellij可能会自动检测该构面(无论如何都要检查该构面是否已完成),或者我们可能必须手动添加该构面。请记住,在Java EE构建设置选项卡中,将其设置为"可创建的web facet分解目录";如果我们不想重复,一个窍门就是启用它并指向我们已经存在的目录。
(Web)应用程序服务器:转到编辑配置,我们必须在其中添加应用程序服务器的配置,而不要像其他任何应用程序一样将Web服务器作为应用程序启动。这样,Intellij将能够拦截JSP调用。在应用程序服务器列表中,我们应该具有默认服务器Tomcat。在执行此操作之前,请确保具有本地Tomcat安装,并在添加Web应用程序服务器时指向该位置。最后一个技巧是转到"部署"选项卡,并选择与上一步中配置相同的方面作为"部署"源。
如果我们要使用其他Web应用程序服务器,则可以使用相同的配置,我在最新的Caucho Resin版本中对其进行了测试,并且调试正常(对于以前的Intellij和Resin组合则没有)。
如果我们在要添加的可用应用程序服务器列表中没有看到Tomcat,请检查Intellij常规设置窗格中的插件:在最新版本中,越来越多的功能可插入,甚至可能禁用了非常基本的功能;该插件称为Tomcat集成。
最后,肯定不正确的是,JSP文件需要在WEB-INF下才能进行调试。
回答
无论如何,我们需要在IDEA中启动Tomcat,而不是从远程Tomcat中启动。