Purple Bobblehead Bunny

Backend/JSP SERVLET

[JSP] 세션(Session)

준영어린이 2022. 6. 28. 17:28

 

세션

  • 클라이언트와 웹 서버 간의 상태를 지속적으로 유지하는 방법
    • 웹 쇼핑몰에서 장바구니나 주문 처리
    • 사용자 인증을 통해 특정 페이지를 사용할 수 있도록 권한 상태를 유지하는 것.
  • 웹 서버에서만 접근이 가능하므로 보안 유지에 유리하며 데이터를 저장하는 데 한계가 없다.
  • 웹 서버에 존재하는 객체로 웹 브라우저마다 하나씩 존재
  • 웹 서버의 서비스를 제공받는 사용자를 구분하는 단위가 된다.
  • 웹 브라우저를 닫기 전까지 웹 페이지를 이동하더라도 사용자의 정보가 웹 서버에 보관되어 있어 사용자 정보를 잃지 않는다.

세션 생성

  • setAttribute() 메서드를 사용하여 세선의 속성을 설정
    - 계속 세션 상태를 유지할 수 있다.
  • 동일한 세션의 속성 이름으로 세션을 생성하면 마지막에 설정한 것이 세션 속성 값이 된다.                                       void setAttribute(String name, Object value) 
    • 매개변수
      • name - 세션 속성 이름 ( 세션에 저장된 특정 값을 찾아오기 위한 키 )
      • value - 세션의 속성 값 ( 속성 값은 Object 객체 타입만 가능하기 때문에 int, double, char 등의 기본 타입은 사용할 수 없다.
    • setAttribute() 메서드 사용 예시                                                                                                                                   session.setAttribute("memberId","admin");

 

// session01.jsp

<%@ page contentType="text/html; charset=utf-8" %>
<html>
<head>
<title>Session</title>
</head>
<body>
	<form action="session01_process.jsp" method="post">
    	<p> ID : <input type="text" name="id">
        <p> PW : ,input type="text" name="passwd">
        <p> <input type="submit" value="전송">
    </form>
</body>
</html>

 

 

// session01_process.jsp

<%@ page contentType="text/html; charset=utf-8" %>
<html>
<head>
<title>Session</title>
</head>
<body>
	<%
    	// HTTP 요청의 파라미터 값을 얻기 위해 사용 
    	String userId = request.getParameter("id");
        String userPwd = request.getParameter("passwd");
        if(userId.equals("admin") && userPwd.equals("1234")){
        // 세션에 속성 부여
           session.setAttribute("userID",userId);
           session.setAttribute("userPW", userPwd);
           out.println("세션 설정이 성공했습니다<br>");
           out.println(userId + "님 환영합니다.");
        }else{
           out.println("세션 설정이 완료되었습니다.");
        }
     %>   
</body>
</html>

 

session.jsp

 

session01_process.jsp


단일 세션 정보 얻기

getAttribute() 메서드

  • 세션에 저장된 세션 속성 이름에 대한 속성 값을 얻어 옴
  • 반환 유형이 Object 형이므로 반드시 형 변환을 하여 사용
  • 형식 - Object getAttribute(String name)
  • 매개변수 name - 세션에 저장된 세션 속성 이름
  • 해당 속성 이름이 없는 경우 null 반환
// 예시
String id = (String)session.getAttribute("memberId");

 

세션에 저장된 속성 값 가져오기

 

// session02.jsp

<%@ page contentType="text/html; charset=utf-8" %>
<html>
<head>
<title>Session</title>
</head>
<body>
  <%
	String userId = (String) session.getAttribute("userID");
    	String userPwd = (String) session.getAttribute("userPW");
    
    	out.println("세션 속성 값 1 : " + userId + "<br>");
    	out.println("세션 속성 값 2 : " + userPwd);
  %>
</body>
</html>

 

'Backend > JSP SERVLET' 카테고리의 다른 글

[JSP] 쿠키, Cookie  (0) 2022.06.30
[JSP] request.getParameter(), getAttribute()  (0) 2022.06.28
[JSP] 내장 객체(implicit object)  (0) 2022.06.28
[JSP] useBean, setProperty, getProperty  (0) 2022.06.27
[JSP] 포워딩, 리다이렉트  (0) 2022.06.27