JavaWeb Item11: 세션 관리

1632 단어

1. 세션 소개


WEB 개발에서 서버는 모든 사용자 브라우저에 세션 대상 (session 대상) 을 만들 수 있습니다. 주의: 한 브라우저가session 대상을 독점합니다. (기본적으로)따라서 사용자 데이터를 저장해야 할 때 서버 프로그램은 사용자 데이터를 사용자 브라우저가 독점하는session에 쓸 수 있고 사용자가 브라우저를 사용하여 다른 프로그램에 접근할 때 다른 프로그램은 사용자의session에서 사용자의 데이터를 꺼내 사용자에게 서비스를 제공할 수 있다.

2. 세션과 쿠키의 주요 차이점

  • 쿠키는 사용자의 데이터를 사용자에게 쓰는 브라우저입니다.
  • 세션 기술은 사용자의 데이터를 사용자가 독점하는session에 쓴다.
  • 세션 대상은 서버에서 만들고 개발자는 Request 대상의 getSession 방법을 호출하여session 대상을 얻을 수 있습니다.

  • 3. 세션 실현 원리


    3.1 서버는 어떻게session이 사용자 브라우저를 위한 서비스를 실현합니까?


    서버가session을 만들고 나오면session의 id번호를 쿠키 형식으로 클라이언트에게 돌려줍니다. 그러면 클라이언트의 브라우저가 꺼지지 않고 서버에 방문할 때session의 id번호를 가지고 갑니다. 서버는 클라이언트 브라우저가session id를 가지고 오는 것을 발견하면 메모리에 대응하는session을 사용하여 서비스를 합니다.
    처음 방문할 때 서버는 새로운session을 만들고session의 Id를 쿠키 형식으로 클라이언트 브라우저에 보냅니다.

    4. 브라우저가 쿠키를 비활성화한 후 세션 처리


    솔루션:URL 재작성
  • response.encodeRedirect URL (java.lang.String URL)은sendRedirect 방법의 URL 주소를 다시 쓰는 데 사용됩니다. 
  • response.encodeURL(java.lang.String URL)은 폼 action과 하이퍼링크의 URL 주소를 다시 쓰는 데 사용됩니다
  • eg:
    <!-- :-->
    <a href=“maillogin.jsp“> 
    <!-- :--> 
    <a href=“<%=response.encodeURL(“maillogin.jsp“)%>“>

    5.session 대상의 창설과 소각 시기
    만들기:session을 사용합니다.isNew()는 세션이 새로 생성되었는지 여부를 판단합니다.
    수동 제거:session을 사용합니다.invalidate()
    세션 대상이 기본적으로 30분 동안 사용되지 않으면 서버에서 세션을 자동으로 삭제합니다. 웹에서.xml 파일에서session의 실효 시간을 수동으로 설정할 수 있습니다.
    <!--  Session : -->
        <session-config>
            <session-timeout>15</session-timeout>
        </session-config>

    좋은 웹페이지 즐겨찾기