
JSP debugging in IntelliJ IDEA
有谁知道如何在IntelliJ IDEA中调试
当我在
我在这篇文章的IntelliJ论坛中读到,
但是随后我又读到,放置在web-inf下的 我不确定谁是正确的。 对于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下才能进行调试。
对于远程JSP调试(这也适用于 启用它。 确保在"启动/配置">"调试"中设置正确的端口。 打开模块设置(在项目文件夹上为F3),然后在Facets下添加一个Web Facet,然后在Web Resource Directories下指定您的JSP根文件夹。 单击Configuration ... 按钮,然后选择包含JSP所依赖的bean,类和库的文件夹。 现在,只要您使用适当的调试参数启动服务器,JSP断点就可以正常工作。 无论如何,您需要在IDEA中启动Tomcat,而不是从远程Tomcat中启动。 请确保,在您的tomcat的conf / web.xml上未启用preventSmap,因为IntelliJ的调试器需要对JSR45的支持。 它看起来应该像这样:
来自https://tomcat.apache.org/tomcat-7.0-doc/jasper-howto.html
如果使用的是Intellij调试器,则可以通过在JSP内放置一个断点并评估表达式 请注意,这可能会返回Java Object类型,并且您可能必须将其强制转换为正确的类型。 另外,如果您启动远程Tomcat,则IDEA不会遇到任何断点,因此您需要从IDEA内部以调试模式启动Tomcat。 对于问题的第二部分("放置在web-inf下的jsp文件将不能被用户直接访问"),这是正确的。为了允许用户访问WEB-INF文件夹中的JSP文件,需要在每个JSP页面的web.xml文件中创建servlet和servlet映射条目。 |