通过 servlet 从一个 jsp 到另一个进行通信

Communicating from one jsp to another via servlet

我有 2 jsp 页。一个主页和一个表单页面。主页有一个网格(extjs 框架),当我单击一行时,它会打开我的表单 jsp 页面。我想要实现的是,提交表单后,我希望我的主页刷新其网格以显示从表单提交的新数据。请注意,表单页面是一个新的 window。 它们在不同的浏览器中共存 windows(用户同时看到两者)。

我想到的一种方法是通过服务器发送的事件。表单提交后,我从 form.jsp 向 servlet 发送了一个 ajax 请求,它应该用我的 main.jsp 监听的事件流来响应,但它似乎没有工作。当我尝试创建 EventSource 对象时,出现错误:

EventSource's response has a MIME type ("text/javascript") that is not "text/event-stream". Aborting the connection.

错误似乎出现在我的文档类型声明中: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

我不太确定为什么会这样。如有任何帮助,我们将不胜感激。

不管我尝试实现的方法是什么,有没有更好的方法?或者服务器发送事件方法的修复?

您可以在提交表单时执行此操作 window.opener.location.reload(true)。 'true' 如果您想从服务器完全重新加载此页面。

如果您不想刷新整个页面,则可以按照以下步骤操作。

  • 在主页上使用代码创建一个方法来刷新您的网格。 function refreshGrid().
  • 使用 opener 引用从打开的页面调用此方法。 window.opener.refreshGrid().

希望对您有所帮助。