有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java服务器端脚本在没有servlet的情况下连续运行

您好,我正在从事一个web项目,使用html5和Java,hibernate框架和ajax作为它们之间的桥梁。 我开发了一些servlet,这些servlet使用html5表单进行映射,并通过ajax发送数据。 我面临的问题是,我不知道如何在不属于servlet的服务器上运行脚本

脚本是一个独立的模块,它将从数据库获取数据,并在服务器启动时在循环中连续操作数据。服务器端操作的唯一知识是需要使用按钮调用的servlet。但是,我希望在循环中运行的脚本不需要按钮,它应该在服务器启动后立即运行,并且不管servlet如何,它都应该继续运行


共 (1) 个答案

  1. # 1 楼答案

    您似乎假设servlet是绑定到HTTP请求的东西(如PHP中脚本的执行)

    嗯。。。事实并非如此

    基于servlet的应用程序实际上是一个成熟的应用程序。你启动它,它就会运行。不断地。ServletAPI只定义了一些与应用程序交互的方法,该API主要将HTTP作为通信协议,但甚至可以用于其他协议

    无论如何:太过设定你的目标,你可能想要实现一个ServletContextListener。这将在sevlet应用程序启动和停止后立即触发。通常情况下,您不会随机启动和停止应用程序,但只有在您更新应用程序或类似的情况下。在这些情况下,几乎没有办法中止循环

    在您的ServletContextListener中,您可以根据自己的喜好启动自己的线程,并让它们按照自己的意愿运行。如果服务器停止,您还应该添加关闭机制,因为否则服务器重启会导致线程在未定义状态下被强制终止和/或内存泄漏。正如我提到的,只有在几乎没有办法解决关闭的情况下,才会发生关闭。您的应用程序可以运行数年而不关机

    您需要在web中注册ServletContextListener。xml文件,使其具有一定的效果