我使用 Servlet 在 JSP 中创建了一个网站。
用户可以登录,并且他们都将获得一个带有其userid
的 session 属性。
我创建了一个带有文本框和按钮的页面,我可以在其中填写用户 ID
。
单击按钮后,我想在特定用户的浏览器
上打开一个弹出窗口(url),其中 session 用户ID
等于用户ID
code> 填写文本框。弹出窗口应立即出现,不需要页面请求即可显示。
我应该为此使用什么样的东西?
我用谷歌搜索,但找不到任何有用的东西。
最佳答案
编写聊天客户端可能非常棘手,因为当另一个用户发送消息时,您必须将数据从服务器发送到客户端。 WebSockets 允许您执行此操作,但它是一项相当新技术,不适用于 10 以下的 IE 版本。Chrome、Firefox 和 Safari 支持它。
允许您使用 JavaScript 与服务器通信而不需要刷新浏览器页面的技术组称为 AJAX。
像 DWR 这样的库使得在 Javascript 和 Java 之间进行 AJAX 变得非常容易。它还具有称为反向 AJAX 的功能,允许您编写在客户端上执行 javascript 代码的 Java 代码。 http://directwebremoting.org/dwr/documentation/reverse-ajax/index.html
使用 DWR,您可以编写此代码以在所有连接的客户端上显示弹出窗口:
Container container = ServerContextFactory.get().getContainer();
ScriptSessionManager manager = container.getBean(ScriptSessionManager.class);
System.out.println("sessions: " + manager.getAllScriptSessions().size());
for (ScriptSession scriptSession : manager.getAllScriptSessions()) {
System.out.println("Sending script to session " + scriptSession);
ScriptBuffer script = new ScriptBuffer("window.alert('hello from reverse ajax server');");
scriptSession.addScript(script);
}
关于java - 与特定浏览器通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22793452/