[英]Debugging the init() method in a Java servlet
据我所知,Tomcat服务器是如何工作的,就是如果您的Web应用程序中有Java servlet,则每当服务器启动时都会调用init()
方法。
在这种情况下,如何调试init()
方法? 明确地设置断点是行不通的,并且由于某些原因, System.out.println
语句也不会在服务器控制台上产生任何输出。
我检查了是否部署了正确的Web应用程序( .war
),并将其正确提取到Tomcat服务器的webapps
文件夹中。
在我看来,您的部署描述符Servlet声明load-on-startup
值不大于0。如果省略了该元素,则仅在容器认为应处理请求时才初始化Servlet
。 在此之前,不会调用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
,因此在启动时(而不是在对该Servlet的第一个请求到达时)调用init
方法。
这是不正确的,服务器启动时不会调用init()方法。 它仅被调用一次,并且在同一个init()方法所属的SERVLET的第一次调用期间被调用 。
由于每个Serlvet都有一个init(),因此当您首次调用servlet时,将为各个servlet调用init()。 即在容器加载servlet并实例化之后,然后调用init()方法。
要么做,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.