调试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()方法。
要么,
上一篇: Debugging the init() method in a Java servlet
下一篇: java.lang.ClassNotFoundException for servlet in tomcat with eclipse