java에서 request.getSession(true,false,null)의 차이

java에서 request.getSession(true/false/null)의 차이점
1. 수요 원인
현실에서 우리는 다음과 같은 3가지 중용법을 자주 만난다.
HttpSession session = request.getSession();
HttpSession session = request.getSession(true);
HttpSession session = request.getSession(false);
구별
1. Servlet 공식 문서:
public HttpSessiongetSession(boolean create)
Returns the currentHttpSession associated with this request or, if if there is no current sessionand create is true, returns a new session.
If create is falseand the request has no valid HttpSession, this method returns null.
To make sure thesession is properly maintained, you must call this method before the responseis committed. If the Container is using cookies to maintain session integrityand is asked to create a new session when the response is committed, anIllegalStateException is thrown.
Parameters: true -to create a new session for this request if necessary; false to return null ifthere's no current session
Returns: theHttpSession associated with this request or null if create is false and therequest has no valid session
2. 번역해 온 말은:
getSession(booleancreate)은 현재 reqeust의 HttpSession을 되돌려주는 것을 뜻합니다. 현재 reqeust의 HttpSession이null이면,create가true이면 새 Session을 만들고, 그렇지 않으면null을 되돌려줍니다.
요컨대

HttpServletRequest.getSession(ture)  HttpServletRequest.getSession() 
HttpServletRequest.getSession(false)   Session null; 
3. 사용
세션에 로그인 정보를 액세스할 때 일반적인 권장 사항: HttpSession session = request.getSession();
Session에서 로그인 정보를 얻을 때 일반적인 권장 사항: HttpSession session = request.getSession(false);
4. 더 깔끔한 방식
만약 당신의 프로젝트에서 스프링을 사용한다면,session에 대한 조작이 훨씬 편리할 것입니다.세션에서 값을 찾으려면 WebUtils 도구(org.springframework.web.util.WebUtils)의 WebUtils를 사용하십시오.getSessionAttribute(HttpServletRequestrequest, String name);메서드, 소스 코드:

public static Object getSessionAttribute(HttpServletRequest request, String name){ 

  Assert.notNull(request, "Request must not be null"); 

  HttpSession session = request.getSession(false); 

  return (session != null ? session.getAttribute(name) : null); 

}

주: Assert는 Spring 도구 패키지의 도구로 검증 작업을 판단하는 데 사용되며, 이 예에서는 reqeust가 비어 있는지 판단하는 데 사용되며, 비어 있으면 이상을 던지는 데 사용됩니다.
사용 시:

WebUtils.setSessionAttribute(request, "user", User);

User user = (User)WebUtils.getSessionAttribute(request, "user");

읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!

좋은 웹페이지 즐겨찾기