[ 웹 쇼핑몰 ] 섹션3 JSP 쿠키 & 세션 3
[ 웹 쇼핑몰 ] 섹션3 JSP 쿠키 & 세션 1,2 쿠키에 대한 내용을 정리하여 그림으로 만들어봤다. 네이버 로그인 페이지에 보면 로그인 상태 유지라는 체크 칸이 존재하는 것을 볼 수 있다. 우리가 로그
shampooelf.tistory.com
세션은 사용자로부터 넘어온 정보를 브라우저에서 저장하는 것이 아니라 서버 측에서 저장한다.
쿠키는 웹브라우저 자체 내 쿠키 저장소에 저장되는 반면 세션은 서버 측에 저장된다는 점에서 차이가 있다.
세션은 쿠키와 달리 재시작을 하면 내용이 사라지게 된다.
그 이유는 데이터베이스에 저장되는 것이 아닌 서버측의 메모리에 저장되기 때문이다.
웹 브라우저 당 하나의 세션이 웹 컨테이너(톰캣 서버)에 저장된다.
세션을 사용하는 이유는
페이지가 바뀌어도 내용을 유지하고 싶을 때 사용한다.
은행 모바일 어플을 예를 들어보자면
내가 로그인 한 후
송금을 한 다음 계좌 잔액을 조회하고 또 누군가에게 송금하였다고 가정해보자
내 로그인 상태는 풀리지 않은 상태에서 여러가지 일을 수행하였다.
세션이라는 기능이 있었기 때문에
나의 로그인이 풀리지 않고 여러 페이지를 왔다 갔다 할 수 있었다.
request.getparameter 를 통해서도 가능하지만
그렇다면
위 주소창 처럼 아이디와 패스워드 값이 고스란히 노출될 위험이 있고
복잡하기 때문에 session을 사용하는 것이 더 좋다.
< SessionLoginForm.jsp >
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<body>
<center>
<h2> 세션 로그인 </h2>
<form action="SessionLoginProc.jsp" method="post">
<table width="400" border ="1">
<tr height="50">
<td width="150">아이디</td>
<td width="250"><input type="text" name="id"></td>
</tr>
<tr height="50">
<td width="150">패스워드</td>
<td width="250"><input type="password" name="pass"></td>
</tr>
<tr height="50">
<td colspan="2" align="center"><input type="submit" value="로그인"></td>
</tr>
</table>
</form>
</center>
</body>
</html>
세션이 끊기지 않고 잘 이어지는지 확인하기 위해서는
SessionLoginProc과 SessionLoginProc2 jsp 파일을 생성하였다.
SessionLoginProc에서 SessionLoginProc2로 이동해도
입력했던 정보가 안끊기는지 확인하기 위함이다..!
< SessionLoginProc.jsp >
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<body>
<center>
<h2> 세션 로그인 처리1 </h2>
<%
request.setCharacterEncoding("euc-kr");
//사용자로부터 데이터를 읽어드림
String id = request.getParameter("id");
String pass = request.getParameter("pass");
//아이디와 패스워드를 저장(저장 시 setAttribute 사용)
session.setAttribute("id", id);
session.setAttribute("pass", pass);
//세션을 유지 시간 설정
session.setMaxInactiveInterval(60);
%>
<h2>당신의 아이디는 <%=id %> 입니다. 패스워드는 <%=pass %>입니다.</h2>
<a href="SessionLoginProc2.jsp">다음 페이지로 이동</a>
</center>
</body>
</html>
session.setAttribute를 통해 아이디와 패스워드를 저장한다.
그리고 setMaxInactiveInterval 메소드를 통해 유지 시간을 설정해준다.
현재 나는 60초로 설정되어있는 상태이다.
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<body>
<center>
<h2> 세션 로그인 처리2 </h2>
<%
//세션을 이용하여 데이터를 불러옴
String id = (String)session.getAttribute("id");
String pass = (String)session.getAttribute("pass");
//오브젝트 타입으로 담겨지기 때문에 string타입으로 캐스트가 필요하다.
%>
<h2>당신의 아이디는 <%=id %> 입니다. 패스워드는 <%=pass %>입니다.</h2>
</center>
</body>
</html>
세션을 저장한 것을 불러올 때는 getAttribute를 사용한다.
여기서 (String으로 캐스팅하였는데 이는 오브젝트로 담겨지기 때문에 스트링 타입으로 따로 캐스트가 필요하다.
'예비개발자 > JSP' 카테고리의 다른 글
[ 웹 쇼핑몰 ] 섹션3 JSP Session을 통한 로그인 처리 2 (0) | 2023.04.16 |
---|---|
[ 웹 쇼핑몰 ] 섹션3 JSP Session을 통한 로그인 처리 1 (0) | 2023.04.16 |
[ 웹 쇼핑몰 ] 섹션3 JSP 쿠키 & 세션 3 (0) | 2023.04.15 |
[ 웹 쇼핑몰 ] 섹션3 JSP 쿠키 & 세션 1,2 (0) | 2023.04.15 |
[ 웹 쇼핑몰 ] 섹션2 프로그래밍 데이터베이스 연동 10(회원 정보 수정, 삭제 ) (0) | 2023.04.15 |
댓글