首先,我在websocket之前在servlet中设置属性。
我确定该属性不为null并在控制台上打印。
session.setAttribute("user",request.getParameter("name"));
然后我从HTML5建立websocket并在modifyHandshake中获取httpsession。但是我得到了。
public class GetHttpSessionConfigurator extends ServerEndpointConfig.Configurator
{
@Override
public void modifyHandshake(ServerEndpointConfig config,
HandshakeRequest request,
HandshakeResponse response)
{
HttpSession httpSession = (HttpSession)request.getHttpSession();
config.getUserProperties().put(HttpSession.class.getName(),httpSession);
System.out.println("username:"+httpSession.getAttribute("user"));
}
}
它在控制台上打印'null'。
为什么?