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