Spring - session (2022-10-17)

2022. 10. 18. 00:533층 1구역 - 개발의 장/Spring

1. 서론

 

쿠키와 유사한 역할을 하는 세션에 대해 알아보자.

 

2. 본론

 

세션의 생성은 쿠키보다 쉬운 편이다.

이전에 jsp에서 하던거 그대로 사용하면 된다.

 

SessionController.java

package com.care.cs.session;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class SessionController {
//	HttpSession session = new HttpSession();
	@Autowired private HttpSession session;
	
//	http://localhost:8085/cs/make
	@RequestMapping("make")
	public String make() {
		session.setAttribute("id", "admin");
		session.setAttribute("pw", "1234");
		return "session/make";
	}
	
	@RequestMapping("result")
	public String result() {
		return "session/result";
	}
	
	@RequestMapping("delete")
	public String delete() {
		session.invalidate();
		return "session/delete";
	}
}

 

make.jsp

package com.care.cs.session;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class SessionController {
@Autowired private HttpSession session;

@RequestMapping("make")
public String make() {
session.setAttribute("id", "admin");
session.setAttribute("pw", "1234");
return "session/make";
}

}

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>make</title>
</head>
<body>
	<h3>세션 생성 페이지</h3>
	<a href="result">세션 확인하기</a> | <a href="delete">세션 삭제하기</a>
</body>
</html>

 

 

 

result.jsp

package com.care.cs.session;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class SessionController {
@Autowired private HttpSession session;

@RequestMapping("result")
public String result() {
return "session/result";
}

}

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>result</title>
</head>
<body>
	<h3>세션 확인 페이지</h3>
	아이디 : ${sessionScope.id }<br>
	비밀번호 : ${sessionScope.pw }<br>
	<a href="delete">세션 삭제하기</a>
</body>
</html>

 

 

delete.jsp

 

package com.care.cs.session;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class SessionController {
@Autowired private HttpSession session;

@RequestMapping("delete")
public String delete() {
session.invalidate();
return "session/delete";
}

}

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>delete</title>
</head>
<body>
	<h3>세션 삭제 후 확인 페이지</h3>
	아이디 : ${sessionScope.id }<br>
	비밀번호 : ${sessionScope.pw }<br>
	<a href="make">세션 생성하기</a> 
</body>
</html>

 

3. 결론

 

확실히 쿠키 생성보다 세션이 좀 더 쉬운 느낌이다.

보안을 위해서라도 주로 세션을 애용할 거 같다

 

.....사실 쿠키보다 다루기 쉬워서 더 많이 찾을 거 같다