참치코더의 꿈 메모장

JSP// 세션(session) 에 대한것 본문

JSP

JSP// 세션(session) 에 대한것

참치깡 2020. 2. 15. 03:49
728x90

세션 생성법 

 

기본 : <%@ page session="true" %>  // page에다가 session 속성을 true로 주면 세션이 생성된다. false로 주면 생성이 되지 않는다.

 

/*쿠키는 웹브라우저 에서 저장되는 속성이라고 생각하면 되고 서버에 저장되는 것을 세션이라고 생각하면 된다.*/

 

다른방법 : 위의 session 속성을 false로 만들고  request 기본 객체의 getSession( ) 메서드를 사용

ex)  <%@ page session="false"%>

 

       <%

              HttpSession httpSession = request.getSession( );

              List list = (List)httpSession.getAttribute("list");

              list.add(productId);

        %>

 

 

session 기본 객체

 

session.getId( ) : 세션의 ID를 구한다.

session.getCreationTime( ) : 세션이 언제 생성됬는지 생성된 시간을 구한다.

session.getLastAccessedTime( ) : 웹브라우저가 마지막으로 언제 세션에 접근 했는 지를 구하는 메서드이다.

 

세션에 값을 저장할 때는 속성을 사용하는데 속성에 값을 저장하려면 setAttribute( )를 사용하고 값을 얻을려면 getAttribute( )

메서드를 사용해야 한다.

 

 

session 종료

 

session.invalidate( ) : 메서드를 사용해서 세션을 종료한다. 

 

 

session 유효시간 

 

세션은 유효시간을 가지게 되는데 일정 유효시간 안에 세션에 접근하지 않으면 자동으로 세션을 종료한다.

 

1. 세션 유효시간 설정 방법 첫번째 : WEB-INF\web.xml 파일에 <session-config> 태그 사용하기.

 

ex)  <session-config>

            <session-timeout>100</session-timeout>  //여기서는 분단위로 계산한다.

      </session-config>

 

2. 세션 유효기간 설정 방법 두번째 :  session 기본 객체가 제공하는 setMaxInactiveInterval( ) 메서드 사용하기.

 

ex)  <%

               session.setMaxInactiveInterval(60*30)  //  여기서는 초 단위로 계산한다. 

      %>

 

세션의 유효시간을 0으로 설정하면 session.invalidate( )를 실행시키지 않는 이상 세션이 종료되지가 않는다. 

따라서 세션 객체가 계속 메모리에 남아서 웹 컨테이너의 메모리 부족 현상이 발생하게 된다.

 

 

여러개의 세션 속성을 클래스로 편하게 하기

 

public class Member{  // 세션으로 설정할 속성들을 class로 묶는다.

private String id;

private String name;

private String email;

private boolean mail;

private int age;

}

 

<%

      Member member = new Member(id,name);  // id와 이름속성을 가질수 있다.

      session.setAttribute("member",member);  member 속성을 입력할수 있게 setAttribute에다가 설정을 한다.

%>

 

<%

     Member member = (Member)session.getAttribute("member");  // member 속성에 있는 값을 읽어서 Member 객체에 전달한다.

%>

 

<%= member.getEmail().toLowerCase( )%>

728x90
Comments