java - 与特定浏览器通信

标签 java jsp servlets web

我使用 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/

相关文章:

java - 权限错误 - 尝试使用 android facebook sdk 结交 friend

java - Web 服务器 java 库?

java - 如何将对象从 servlet 传递到调用 JSP

java - 在jsp中添加后退按钮

Java Web Server 突然停止响应,没有任何异常

java - 在JAVA中如何检查两个ArrayList中的多个数字

java - 安装 Android Studio(不工作)

java - 在可观察对象发出一定数量的项目后触发一个 Action

javascript - 注册表单提交和 Java servlet

java - (需要解释)从计算机文件夹中检索图像