백그라운드 세션 Id에서 항상 변경되는 문제 해결

3643 단어 백엔드
**

문제.


**: 전면 및 후면 프로젝트를 할 때 사용자가 로그인한 후 Session에 사용자 관련 정보를 저장합니다. 그러나 로그인이 완료된 후 프런트에서 다른 인터페이스를 방문했을 때 Session에 저장된 값을 얻지 못했습니다.
**

솔루션


**: 이전 코드에서 Session의 값을 가져온 코드
String userId = (String)request.getSession().getAttribute("userId");

문제는 바로 이 Request에서 나온다.getSession (), 이 방법은 매번 새로운 Session을 new에 표시하기 때문에 Session Id가 매번 바뀌어 Session에 저장된 값을 찾을 수 없습니다.
수정된 코드:
  • HttpServletRequest를 사용하여 판단
  • //      
    request.getSession().setAttribute("userId","xxxx");
    
    //   
    HttpSession session = request.getSession(false);
    if(null != session){
        String userId = (String)session.getAttribute("userId");
    }
    
  • WebUtils 도구 클래스 사용
  • //      
    WebUtils.setSessionAttribute(request, "userId", "xxxx");
    
    //   
    String userId = (String)WebUtils.getSessionAttribute(request, "userId");
    

    좋은 웹페이지 즐겨찾기