Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript javaee-HttpSession与jsp和js的通信_Javascript_Jsp_Jakarta Ee - Fatal编程技术网

Javascript javaee-HttpSession与jsp和js的通信

Javascript javaee-HttpSession与jsp和js的通信,javascript,jsp,jakarta-ee,Javascript,Jsp,Jakarta Ee,我想在网页中动态添加一些数据。我有一个HttpSessionListener来保存所有打开的会话 public class SessionListener implements HttpSessionListener { ArrayList<HttpSession> sessions = new ArrayList<HttpSession>(); @Override public void sessionCreated( HttpSessionEvent sessio

我想在网页中动态添加一些数据。我有一个HttpSessionListener来保存所有打开的会话

public class SessionListener implements HttpSessionListener {

ArrayList<HttpSession> sessions = new ArrayList<HttpSession>();

@Override
public void sessionCreated( HttpSessionEvent sessionEvent ) {
    sessions.add( sessionEvent.getSession() );
}

@Override
public void sessionDestroyed( HttpSessionEvent sessionEvent ) {
    sessions.remove( sessionEvent.getSession() );
}

public void sendToAll( Info info ) {
    for( HttpSession session: sessions ) {
        //send something to all connection clients.
    }
}
公共类SessionListener实现HttpSessionListener{
ArrayList会话=新建ArrayList();
@凌驾
已创建公共无效会话(HttpSessionEvent sessionEvent){
sessions.add(sessionEvent.getSession());
}
@凌驾
public void sessionDestroyed(HttpSessionEvent sessionEvent){
sessions.remove(sessionEvent.getSession());
}
公共无效发送到所有(信息){
用于(HttpSession:会话){
//向所有连接客户端发送内容。
}
}
}


如何从JavaScript客户端获取这些消息?

在我看来,有些人会在每个会话(或POJO列表或StringBuilder)上放置一个字符串,然后在jsp中模板化该值,下次刷新jsp页面时,在会话上推送的值将出现


如果您想实现http推送之类的功能,那么我认为您需要结合其他技术,无论是客户端ajax轮询还是comet。

我想获得类似于facebook的效果,当有人发表文章时,我会动态进入而不刷新页面。您需要研究ajax长轮询或comet。由于您喜欢spring,请查看它的新WebSocket支持:。长轮询将是一个更简单的解决方案,尽管您必须将会话对象公开为http端点。