1

知られているように、関数 createWebSocketInbound( String subprotocol, HttpServletRequest request) には 2 つのパラメーターがあります。

しかし、この関数を使用すると、パラメーター「リクエスト」からログインするときに入力したユーザー情報でセッションを取得できません。代わりに、request.getSession() を使用すると、何も含まれていない新しいセッションが取得されます... リクエストでユーザーのログイン情報を取得するにはどうすればよいですか、またはログイン情報をこの関数に渡すにはどうすればよいですか?

私のコード:

@WebServlet(urlPatterns = { "/websocket"})
public class WebSocketWebSocketServlet extends WebSocketServlet {

private static final long serialVersionUID = 1L;

private AdminBean chatter;  //Login information

public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    Object obj = request.getAttribute("admin");  //obj turns out to be null ...
    super.doGet(request, response);
}

@Override
protected StreamInbound createWebSocketInbound(String subProtocol,HttpServletRequest request) {
    System.out.println("Create a new Instance of WebSocketServlet");
    HttpSession session = request.getSession();
    this.chatter = (AdminBean) session.getAttribute("LoginUser"); //chatter turns out to be null ...
    Object obj = request.getAttribute("admin");  //obj turns out to be null ...
    return new WebSocketMessageInbound(chatter);
}

}

4

0 に答える 0