Tomcat Java Servlet-在应用程序启动时初始化类

我有一个类,它会花一些时间来启动(进行一些JNI调用,而不会进行),因此在每次页面加载时初始化该类都是不可行的。是否可以在应用程序启动时初始化此类,然后在提供页面时访问其方法?

例如:

我有MyClass。当应用程序(tomcat)启动时,我希望它按如下方式初始化我的校准:

MyClass myClassInstance = new MyClass("arg1", "arg2");

然后,当调用页面时,例如说/ testpage,我想调用myClassInstance:

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

import MyClass;

public class TestPage extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException

{

String myResult = myClassInstance.getResult("whatever");

response.setContentType("text/html");

PrintWriter out = response.getWriter();

out.println("<html>");

out.println("<head>");

out.println("<title>Test</title>");

out.println("</head>");

out.println("<body>");

out.println("<h1>" +myResult +"</h1>");

out.println("</body>");

out.println("</html>");

}

}

这可能吗?

回答:

您有两种选择:

  1. 用servlet的init()方法初始化您的类。您可以添加<load-on-startup>属性以确保您的servlet是在应用程序启动时创建的,而不是在首次访问时创建的。

  2. 添加ServletContextListener并使用contextInitialized()回调方法。使用ServletContext#setAttribute存储创建的对象以备将来使用。

以上是 Tomcat Java Servlet-在应用程序启动时初始化类 的全部内容, 来源链接: utcz.com/qa/399931.html

回到顶部