当前位置: 首页 > 知识库问答 >
问题:

无需客户端请求即可将servlet与jsp通信

戚俊健
2023-03-14

我正在做一个项目,我们使用Tomcat8作为应用服务器,因此使用JSP和servlet。每个JSP都显示一种项目列表。应用程序的用户有可能模拟一个项目。这意味着什么并不重要。当用户单击“模拟”按钮时,将执行以下过程:

  1. 通过Ajax(javascript)将执行一个servlet,该servlet生成一个zip文件并将该文件存储在服务器的硬盘上

所以我的问题是:通知JSP模拟已经完成的最佳方式是什么?JSP仍然显示项目正在进行模拟。我目前的想法如下:

我可以定期向服务器发送Ajax请求,以检查数据库中的“嘿,我准备好了”标志,如果设置了,我可以在JSP上显示结果。但是我觉得有更聪明的解决方案。

也许我可以使用最后一个servlet调用(参见第5点)以某种方式通知JSP模拟已经完成?问题是这个servlet不是由客户端调用的,而是由外部java程序调用的。

你有什么建议吗?或者有什么我应该读的技术吗?

谢谢你。

共有1个答案

漆雕彬彬
2023-03-14

使用异步ajax调用意味着当servlet完成其工作并返回一些HTTP代码时,函数将返回(成功返回200)。

所以这个例子:

$.ajax({
                    url: Config.serverUrl+'/simulationServlet',
                    type: 'GET',

                    success: function(result) {
                           $('#infoBox').text("simulation is over");
                       }
                });

将显示模拟完成。

 类似资料:
  • 当浏览器请求一个网页时,它会向网络服务器发送一系列不能被直接读取的信息,因为这些信息是作为HTTP信息头的一部分来传送的。您可以查阅HTTP协议来获得更多的信息。 下表列出了浏览器端信息头的一些重要内容,在以后的网络编程中将会经常见到这些信息: 信息 描述 Accept 指定浏览器或其他客户端可以处理的MIME类型。它的值通常为 image/png 或 image/jpeg Accept-Char

  • 当浏览器请求网页时,它会向 Web 服务器发送特定信息,这些信息不能被直接读取,因为这些信息是作为 HTTP 请求的头的一部分进行传输的。您可以查看 HTTP 协议 了解更多相关信息。 以下是来自于浏览器端的重要头信息,您可以在 Web 编程中频繁使用: 头信息 描述 Accept 这个头信息指定浏览器或其他客户端可以处理的 MIME 类型。值 image/png 或 image/jpeg 是最常

  • 客户端的HTTP/HTTPS请求。 进程:主进程​ ClientRequest是由EventEmitter来实现Writable Stream​ new ClientRequest(options) 作用:发起新的HTTP/HTTPS请求 options(Object | String) - options是String时即请求URL。 options 是Object时则按以下属性请求: meth

  • 我有一个小应用程序(HTML表单、servlet作为控制器和jsp文件),我试图弄清楚为什么我不能将请求从servlet转发到jsp文件。 问题是从html提交后,显示“HTTP状态404” null 谢谢! 项目层次结构:http://s23.postimg.org/kgt7r7lwb/capture.jpg main.html: 更新:问题可能出在Controller.java。当我尝试下面的

  • 问题内容: 有时,我必须编写软件以与位于Cisco VPN中的特定服务器建立套接字。我只是像没有VPN一样编写软件(使用标准套接字库)。是时候运行该程序了,我使用计算机上安装的客户端软件手动连接到VPN,然后运行程序本身。 但是,需要编写软件以利用能够直接通过VPN进行通信而无需使用任何已安装客户端软件的专用套接字库。 这是一些Java代码,说明了我想要的功能: 是否可以在不安装任何客户端软件的情

  • httplib 库主要用来模拟客户端发送 HTTP 请求,类似于 Curl 工具,支持 JQuery 类似的链式操作。使用起来相当的方便;通过如下方式进行安装: go get github.com/astaxie/beego/httplib 如何使用 首先导入包 import ( "github.com/astaxie/beego/httplib" ) 然后初始化请求方法,返回对象 r