sessionTracking 종류
- 세션
① client 의 상태값을 서버 메모리에 저장한다
② 저장하는 데이터 타입은 제한이 없지만, 객체 타입만 가능하다.
③ javax.servlet.http.HttpSession
- 쿠키
① client의 상태값을 client 시스템 메모리에 저장한다.
② 저장하는 데이터 타입은 '단순 문자열'로 제한되어있다.
③ javax.servlet.http.Cookie
구조 설명
login.html
→ LoginValidate.java(유효성 검사/redirect)
→ Welcome.java
→ Logout.java
1) login.html
2) LoginValidate.java
- 유효하다면 Cookie 생성
- 데이터 쿠키에 저장 (쿠키에 새로운 정보가 저장되고, client 시스템에 쿠키 정보 저장 모두 이루어짐)
- redirect로 Welcome으로 이동할 예정
3) Welcome.java
- 저장된 쿠키를 client 시스템으로 부터 획득할 예정
- 로그아웃 버튼 만들기 (버튼 클릭시 Logou.java로 이동)
4) Logout.java
- client 시스템에 저장된 쿠키 정보를 삭제할 예정
실습 코드
1) package명 : step03_sessionTracking 생성
2) webapp - login.html 생성
3) java - controller - LoginValidate.java 생성
(URL mappings : /encore/playdata)
login.html 코드
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>login page</title>
</head>
<body>
<h2> 로그인</h2>
<!-- http://localhost/step01_basic/encore/playdata 호출 -->
<form action="encore/playdata" method = "post">
<label>id :</label><br>
<input type="text" name="id" value="tester"><br>
<label>pw :</label><br>
<input type="password" name="pw" value="11"><br><br>
<input type="submit" value="로그인">
</form>
</body>
</html>
LoginValidate.java 코드
package controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
// http://ip:port/context명/encore/playdata
@WebServlet("/encore/playdata")
public class LoginValidate extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(111);
}
login.html : Run as → Run on Server 클릭
로그인 클릭 (id :tester인지 확인)
@WebServlet("/encore/playdata")
LoginValidate.java의 URL mappings을 "encore/playdata"로 설정했기 때문에
<form action="encore/playdata" method = "post">
login.html의 action="encore/playdata"에 따라 "로그인" 클릭시
http://localhost/step03_sessionTracking/encore/playdata 로 넘어간다.