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

时间:2015-03-23 15:44:31

标签: java jsp servlets

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

我想到的一种方法是通过服务器发送事件。在表单提交之后,我从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声明中: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

我不确定为什么会这样。任何有关这方面的帮助将不胜感激。

无论我尝试实施哪种方法,还有更好的方法吗?或修复服务器发送事件的方法?

1 个答案:

答案 0 :(得分:1)

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

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

  • 在主页面上创建一个方法,其中包含用于刷新网格的代码。 function refreshGrid()
  • 使用opener参考从打开的页面调用此方法。 window.opener.refreshGrid()

希望得到这个帮助。