enf*_*fix 16 tomcat web.xml servlets
如何在Tomcat中启动时加载类?我看到load-on-startup
了web.xml
文件的标签,但是我可以使用它吗?我该怎么写我的课程?
编辑:我如何实现这个类和xml?
<servlet-name>??</servlet-name>
<servlet-class>??</servlet-class>
<load-on-startup>10</load-on-startup>
Run Code Online (Sandbox Code Playgroud)
Bal*_*usC 31
这些是为servlet指定加载顺序.但是,servlet更倾向于控制,预处理和/或后处理HTTP请求/响应,而您听起来更像是在webapp的启动时寻找钩子.在那种情况下,你宁愿想要一个ServletContextListener
.
@WebListener
public class Config implements ServletContextListener {
public void contextInitialized(ServletContextEvent event) {
// Do your thing during webapp's startup.
}
public void contextDestroyed(ServletContextEvent event) {
// Do your thing during webapp's shutdown.
}
}
Run Code Online (Sandbox Code Playgroud)
如果你还没有使用Servlet 3.0(因此无法使用@WebListener
),那么你需要手动注册它,web.xml
如下所示:
<listener>
<listener-class>com.example.Config</listener-class>
</listener>
Run Code Online (Sandbox Code Playgroud)
元素load-on-startup指示此servlet应该在Web应用程序启动时被加载(实例化并调用init())。该元素的元素内容必须是一个整数,指示应加载servlet的顺序。换句话说,容器以递增的整数值加载servlet。先加载0值,然后再加载1、2、3,依此类推。
让我们尝试通过以下示例了解它:
web.xml
<web-app>
....
//=====================servlet 1==============
<servlet>
<servlet-name>servlet1</servlet-name>
<servlet-class>com.javatpoint.FirstServlet</servlet-class>
<load-on-startup>0</load-on-startup> //value given 0(zero)
</servlet>
//=====================servlet 2==============
<servlet>
<servlet-name>servlet2</servlet-name>
<servlet-class>com.javatpoint.SecondServlet</servlet-class>
<load-on-startup>1</load-on-startup> //value given 1(one)
</servlet>
...
</web-app>
Run Code Online (Sandbox Code Playgroud)
定义了2个servlet,这两个servlet将在项目部署或服务器启动时加载。但是,将首先加载servlet1,然后再加载servlet2。
传递负值: 如果传递负值,则将在请求时在第一次请求时加载servlet。
归档时间: |
|
查看次数: |
23736 次 |
最近记录: |