如何在websocket端点中获取cookie值



我在应用程序中使用基于JavaEE 7的Websocket-API。

我需要访问在我的websocket端点[Annotated one : @ServerEndpoint ("/websocket") ]内的cookie中设置的值。我该怎么做?

@onOpen()方法在那里,当建立到这个websocket端点的连接时,它将被自动调用。我想访问这个方法中的cookie值。

我知道如何在servlet或JSP中做到这一点,但我是Websockets的新手。

请帮我做这个。提前谢谢。

虽然Joakim的回答确实向正确的方向提供了提示,但我认为它并不能完全回答这个问题,或者至少可以补充。

为了检索cookie的值,您必须获取HandshakeRequest对象的标头,并查找名为"cookie"的标头。您的modifyHandshake实现将类似于:

public class MyEndpointConfigurator extends ServerEndpointConfig.Configurator {
    @Override
    public void modifyHandshake(ServerEndpointConfig config, 
                                HandshakeRequest request, 
                                HandshakeResponse response)
    {
        Map<String,List<String>> headers = request.getHeaders();
        config.getUserProperties().put("cookie",headers.get("cookie"));
    }
}

通过@ServerEndpoint(configurator=MyConfigurator.class)技术访问请求参数。

请参阅关于如何访问HttpSession的其他答案,因为它的技术非常相似。

相关内容

  • 没有找到相关文章

最新更新