调试Java servlet中的init()方法

从我所了解的Tomcat服务器的工作原理来看,如果您的Web应用程序中有一个Java Servlet,则只要服务器启动,就会调用init()方法。

在那种情况下,我该如何调试init()方法? 明确划出断点不起作用,由于某种原因, System.out.println语句也不会在我的服务器控制台上产生任何输出。

我检查了正确的Web应用程序( .war )已部署,并在我的Tomcat服务器的webapps文件夹中正确提取。


在我看来,像你的部署描述符servlet声明没有大于0 load-on-startup值。如果你省略了那个元素, Servlet将只在容器认为它应该处理请求时才被初始化。 直到那时, init方法init调用。

通过提供load-on-startup值,就像这样

 <servlet>
    <servlet-name>servlet</servlet-name>
    <servlet-class>com.example.YourServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

您正在告诉容器立即初始化Servlet ,因此在启动时调用init方法,而不是在该servlet的第一个请求到达时。


这是不正确的,init()方法在服务器启动时不会被调用。 它只被调用一次,并且在第一次调用SERVLET的过程中调用相同的init()方法。

由于每个Serlvet都有一个init(),所以当您第一次调用servlet时会调用相应servlet的init()。 即在容器加载servlet并实例化之后,调用init()方法。

要么,

  • 在web.xml中为servlet加载启动
  • 打电话给serlvet(在第一次打电话之后,你应该在控制台中看到println语句)
  • 链接地址: http://www.djcxy.com/p/23321.html

    上一篇: Debugging the init() method in a Java servlet

    下一篇: java.lang.ClassNotFoundException for servlet in tomcat with eclipse