java - 在 Eclipse 中的 Tomcat 服务器上运行一个 jsp 网站 - 如何在服务器启动时运行 Main 方法?

标签 java eclipse jsp tomcat

我有一个在 Eclipse 中的 Tomcat 服务器上运行的 JSP 网页。该网站有一个 Java 后端,它通过 Servlet 与之通信。一切正常,但我希望有一个后台进程在运行——比如说,一个 Main 方法。此方法应在服务器启动时启动。

我需要这个的原因如下:假设网页有不同的用户登录,我想跟踪他们的用户名并对他们做一些事情——也许创建 session 来跟踪一些指标。

我意识到执行此操作的一种方法可能是在每次有人登录时检查我们的方法是否正在运行。像这样:

 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 if (/* Method is not initialized */)
      /*call Method*/

我想知道是否有更好的方法来启动这个后台方法。

最佳答案

您可以在部署您的网络应用时开始您的流程。为此,您必须创建一个 ServletContextListener .

只需创建一个类:

public class YourClassName implements ServletContextListener{


    @Override
    public void contextInitialized(ServletContextEvent arg0) {
    run your background stuff
    }

    @Override
    public void contextDestroyed(ServletContextEvent arg0) {
    stop your background stuff

    }
}

并在您的 web.xml 中定义它:

    <listener>
        <listener-class>
                 your class fully qualified name
        </listener-class>
    </listener>

如果您不想费心编写 XML 定义并且您正在运行 Java 6+,您还可以使用

注释您的类
@WebListener

关于java - 在 Eclipse 中的 Tomcat 服务器上运行一个 jsp 网站 - 如何在服务器启动时运行 Main 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20249095/

相关文章:

java - 关于 Jersey 中 url 参数的问题

java - BigInt 相乘

java - 在 Eclipse Indigo 中工作的插件,在 galileo 中不工作

hibernate - 使用 maven、servlet、jsp 和 java 构建失败

java - JSP 生成 .xml 文件

java - 我可以使用哪个 Java Regex 来匹配查询字符串前有大写字母的 URL?

java - RecyclerView : Inconsistency detected. 项目位置无效 - 为什么会这样?

eclipse - 通过 Eclipse 部署 Web 应用程序时,是否可以在 server.xml 中维护 tomcat 配置?

android - Nexus 5 不会在 Eclipse 中显示

java - jsp中如何将数字转换为K千M百万和B十亿后缀