我正在用GWT编写一个web应用程序。目前,我唯一的服务器端逻辑是扩展RemoteServiceServlet的类中包含的一些RPC调用。这个类的结构如下所示:
public class ProjectActionsImpl extends RemoteServiceServlet
implements ProjectActions {
public ProjectActionsImpl() {
... *lots* of preparations ...
}
public String action1(String request) {
...
}
public String action2(String request) {
...
}
...
}但是我刚刚意识到构造函数中的初始化工作太多了,第一个调用需要几十秒才能响应。我可以想象,这将是恼人的第一个用户。
在服务器启动时,在服务器开始侦听之前,是否有方法初始化后端?
发布于 2015-05-22 07:33:18
你可以用ServletContextListener试试。看看这个:http://www.mkyong.com/servlet/what-is-listener-servletcontextlistener-example/。简而言之,您定义了一个上下文侦听器,该侦听器在webapp启动时被触发,在那里您可以初始化服务器端逻辑。下面是一个例子:
public class MyServletContextListener implements ServletContextListener{
@Override
public void contextInitialized(ServletContextEvent ctxEvt) {
System.out.println("this runs at web app startup");
}
@Override
public void contextDestroyed(ServletContextEvent ctxEvt) {
System.out.println("this runs when you stop the app");
}
}然后使用和标记在web.xml中注册它(如果使用servlet规范v.3,则可以使用@WebListener对类进行注释)。
https://stackoverflow.com/questions/30388781
复制相似问题