我知道普通的Java,但对于servlets、containers等领域还很陌生。因此我不确定哪种方法最合适。
情况如下:我创建了一个Servlet,用于接收信息并将其存储到数据库中。其他应用程序会读取这个数据库。
现在我需要一个应用程序,它可以接收完全相同的信息并将其存储到同一个数据库中。但是,这个新应用程序需要从另一台服务器上获取这些信息(我将使用httpClient完成这个任务),而不是让信息推送给它。这两个应用程序将共存。
对于这个新应用程序,我看到以下两个选项:
1. 创建一个独立的应用程序。对于此选项,我可以复制和粘贴大量现有的后端代码,但我需要进行一些修改(servlet容器提供上下文、简单的数据库连接池等)。此外,我可能需要使用一些包装器,以便它可以像一个合适的守护进程一样工作,我可以启动、优雅地停止/重启等。
2. 将新应用程序作为Servlet的一部分。也就是说,在init()中启动一个新线程来运行新应用程序。这将允许我重用已经拥有的所有后端代码,而无需重写任何代码。我只需要编写执行HTTP-GET请求的代码即可。使用这种方法,启动和停止服务也会更容易,因为我可以使用Servlet容器来完成。
关于项目的一些信息:解析并将数据写入数据库的后端代码有几个线程,但不是非常复杂。编写原始servlet的代码大约需要一周的时间。基于现有的代码库,我认为这个新应用程序最多只需要1到2天的工作量。
在我看来,选项2更容易。但这感觉有点像我要“滥用”servlets。所以我的问题是:servlets不是用于处理请求的应用程序,而不是用于发出请求的应用程序吗?我没有看到任何巨大的缺点吗?哪种选项最合理?
简而言之,我能不能将一个不提供请求服务的应用程序编写成Servlet?
情况如下:我创建了一个Servlet,用于接收信息并将其存储到数据库中。其他应用程序会读取这个数据库。
现在我需要一个应用程序,它可以接收完全相同的信息并将其存储到同一个数据库中。但是,这个新应用程序需要从另一台服务器上获取这些信息(我将使用httpClient完成这个任务),而不是让信息推送给它。这两个应用程序将共存。
对于这个新应用程序,我看到以下两个选项:
1. 创建一个独立的应用程序。对于此选项,我可以复制和粘贴大量现有的后端代码,但我需要进行一些修改(servlet容器提供上下文、简单的数据库连接池等)。此外,我可能需要使用一些包装器,以便它可以像一个合适的守护进程一样工作,我可以启动、优雅地停止/重启等。
2. 将新应用程序作为Servlet的一部分。也就是说,在init()中启动一个新线程来运行新应用程序。这将允许我重用已经拥有的所有后端代码,而无需重写任何代码。我只需要编写执行HTTP-GET请求的代码即可。使用这种方法,启动和停止服务也会更容易,因为我可以使用Servlet容器来完成。
关于项目的一些信息:解析并将数据写入数据库的后端代码有几个线程,但不是非常复杂。编写原始servlet的代码大约需要一周的时间。基于现有的代码库,我认为这个新应用程序最多只需要1到2天的工作量。
在我看来,选项2更容易。但这感觉有点像我要“滥用”servlets。所以我的问题是:servlets不是用于处理请求的应用程序,而不是用于发出请求的应用程序吗?我没有看到任何巨大的缺点吗?哪种选项最合理?
简而言之,我能不能将一个不提供请求服务的应用程序编写成Servlet?