๋กœ์ผ“๐Ÿพ
article thumbnail
๋ฐ˜์‘ํ˜•

 

์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ์„ธ์…˜์„ ์ด์šฉํ•ด ๋กœ๊ทธ์ธ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 


์„ธ์…˜์ด๋ž€?

 

์„ธ์…˜์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ๊ณ  ๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค. ์„ธ์…˜์€ ์ฟ ํ‚ค์˜ ํ•œ ์ผ์ข…์œผ๋กœ session ์ฟ ํ‚ค๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํŽธํ•˜๊ฒŒ ์šฐ๋ฆฌ๋Š” ๊ทธ๋ƒฅ ์„ธ์…˜์ด๋ผ๊ณ  ํ•˜์ฃ .  ๊ทธ๋ž˜์„œ ์„ธ์…˜๊ณผ ์ฟ ํ‚ค๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์•„์‹œ๋Š” ๋ถ„๋“ค์ด ๋งŽ์€๋ฐ ์‚ฌ์‹ค ์„ธ์…˜๋„ ์ฟ ํ‚ค์— ์†ํ•ฉ๋‹ˆ๋‹ค. 

 

์ฟ ํ‚ค๋Š” session ์ฟ ํ‚ค์™€ persistence ์ฟ ํ‚ค๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  session ์ฟ ํ‚ค๊ฐ€ ์ด๋ฒˆ ๊ธ€์—์„œ ์‚ฌ์šฉํ•  ์ฟ ํ‚ค ์ž…๋‹ˆ๋‹ค. session ์ฟ ํ‚ค๋Š” persistence ์ฟ ํ‚ค์™€ ๋‹ค๋ฅด๊ฒŒ ํœ˜๋ฐœ์„ฑ์„ ๋œ๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ € ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋งŒ์•ฝ session ์ฟ ํ‚ค๊ฐ€ ์‹ฌ์–ด์ ธ ์žˆ๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ข…๋ฃŒ๋œ๋‹ค๋ฉด session ์ฟ ํ‚ค๋Š” ์‚ฌ๋ผ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 

 

session ์ฟ ํ‚ค์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ–ˆ๊ณ , ์–ด๋–ป๊ฒŒ ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ถ”ํ›„ Node.js ๊ด€๋ จํ•œ passport ๊ธฐ๋Šฅ๋„ ์—…๋กœ๋“œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

(์ดํ•˜ session ์ฟ ํ‚ค๋Š” ์„ธ์…˜์œผ๋กœ ๋ถ€๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค)

 


๋กœ๊ทธ์ธ ๊ตฌํ˜„

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>๋กœ๊ทธ์ธ์ฐฝ</title>
</head>
<body>
  <form name="frmLogin" method="post" action="/login"  encType="UTF-8">
	   ์•„์ด๋””  :<input type="text" name="user_id"><br>
     ๋น„๋ฐ€๋ฒˆํ˜ธ:<input type="password" name="user_pw" ><br>
    <input type="submit" value="๋กœ๊ทธ์ธ">  <input type="reset" value="๋‹ค์‹œ์ž…๋ ฅ">
  </form>
</body>
</html>

login.html

 

์„ธ์…˜์— ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•˜์—ฌ ์œ„์™€ ๊ฐ™์ด html ์„ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค.

 

JSESSIONID๊ฐ€ ์„ธ์…˜์ž…๋‹ˆ๋‹ค.

 

๊ทธ ํ›„ localhost:8090/login.html ์œผ๋กœ ์ด๋™ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ Application์—์„œ ์ฟ ํ‚ค๋ฅผ ํ™•์ธํ•ด์ค๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด ํ˜„์žฌ ์•„๋ฌด ์ฟ ํ‚ค๋„ ์—†์Šต๋‹ˆ๋‹ค.

 

 

package servletTest.servlet1;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@WebServlet("/login")
public class SessionTest extends HttpServlet{
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException{
		doHandle(request, response);
	}
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException{
		doHandle(request, response);
	}
	
	private void doHandle(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException,IOException {
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		
		HttpSession session = request.getSession();
		String user_id = request.getParameter("user_id");
		String user_pw = request.getParameter("user_pw");
		
		if(session.isNew()) {
			if(user_id != null) {
				session.setAttribute("user_id", user_id);
				out.println("<a href='login'>๋กœ๊ทธ์ธ์ƒํƒœํ™•์ธ</a>");
			}else {
				out.println("<a href='login.html'>๋‹ค์‹œ๋กœ๊ทธ์ธํ•˜์„ธ์š”</a>");
			}
		}else {
			user_id = (String) session.getAttribute("user_id");
			if(user_id != null && user_id.length() != 0) {
				out.print("์•ˆ๋…•ํ•˜์„ธ์š”" + user_id + "๋‹˜");
			}else {
				out.println("<a href='login.html'>๋‹ค์‹œ๋กœ๊ทธ์ธํ•˜์„ธ์š”</a>");
				session.invalidate();
			}
		}
		
	}
}

 

getSession์„ ์ด์šฉํ•˜์—ฌ JSESSIONID ์— ๋Œ€ํ•œ ์„ธ์…˜์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ๊ทธํ›„ session.isNew() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ๋งŒ์•ฝ ์„ธ์…˜์ด ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ์ด๋ผ๋ฉด session.setAttribute๋ฅผ ์ด์šฉํ•˜์—ฌ user_id๋ฅผ ์ €์žฅํ•ด์ค๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์ง„ ์„ธ์…˜์ด ์—†๋‹ค๋ฉด session.getAttribute๋ฅผ ์ด์šฉํ•˜์—ฌ session์— ์‹ฌ์–ด์ ธ ์žˆ๋˜ user_id๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. 

 

๋กœ๊ทธ์ธ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋กœ๊ทธ์ธ์ƒํƒœํ™•์ธ ํŽ˜์ด์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

 

๋กœ๊ทธ์ธ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด form ํƒœ๊ทธ๋กœ ์ธํ•ด post ๋ฐฉ์‹์œผ๋กœ controller๊ฐ€ ๋งตํ•‘ ๋ฉ๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ ํ•˜๊ธฐ์ „์—๋Š” ๊ทธ์— ๋Œ€ํ•œ ์„ธ์…˜์ด ์—†์œผ๋ฏ€๋กœ isNew ๊ฐ€ true์ด๊ณ  session์— user_id๋ฅผ ์‹ฌ์€ ํ›„ a ํƒœ๊ทธ๋ฅผ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. 

 

user_id๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด?

 

๊ทธ ํ›„ ๋กœ๊ทธ์ธ์ƒํƒœํ™•์ธ์˜ aํƒœ๊ทธ๋ฅผ ๋ˆ„๋ฅด๋ฉด "/login"์œผ๋กœ ์ด๋™ํ•˜๋ฉด์„œ ๋‹ค์‹œ login controller๊ฐ€ ๋ฐ›๊ฒŒ ๋˜๊ณ , ์ด์ œ๋Š” ์„ธ์…˜์ด ์žˆ๊ธฐ๋•Œ๋ฌธ์— isNew๋ฅผ ๋„˜์–ด๊ฐ€๊ณ  ์กฐ๊ฑด else ๋กœ์ง์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ทธํ›„ ์„ธ์…˜์˜ ์‹ฌ์–ด์ง„ user_id๋ฅผ ํ™•์ธํ•˜์—ฌ ๋งŒ์•ฝ user_id๊ฐ€ ์žˆ๋‹ค๋ฉด ์œ„ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ๋‚˜ํƒ€๊ณ  ๋งŒ์•ฝ ์—†์œผ๋ฉด ๋‹ค์‹œ๋กœ๊ทธ์ธํ•˜์„ธ์š” ๋ผ๋Š” ๋ฌธ๊ตฌ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

 

private ๋ชจ๋“œ

 

๋งŒ์•ฝ ์ƒˆ๋กœ์šด ๋ธŒ๋ผ์šฐ์ €์— ๊ฐ™์€ uri ์ ‘์†ํ•˜๊ฒŒ๋˜๋ฉด ๋‹ค์‹œ๋กœ๊ทธ์ธํ•˜์„ธ์š” ๋ผ๋Š” ๋ฌธ๊ตฌ๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š”๋ฐ ์œ„์—์„œ ๋ง์”€๋“œ๋ ธ๋‹ค์‹œํ”ผ ์„ธ์…˜์€ ํœ˜๋ฐœ์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฐ”๋€Œ๋ฉด ์„ธ์…˜์ด ๋ฐ”๋€Œ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 

 

 

์ถ”๊ฐ€

 

for(Cookie cookie : cookies) {
			System.out.println(cookie.getName());
			System.out.println(cookie.getValue());
}

 

Cookie ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•˜๋ฉด ์ฟ ํ‚ค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

์„ธ์…˜์€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ƒˆ๋กœ๊ณ ์นจํ• ๋•Œ๋งˆ๋‹ค ๊ฐฑ์‹ ๋˜๋Š”๋ฐ session์— ๋Œ€ํ•œ ์†์„ฑ์„ ์ •ํ•ด์ฃผ๋ฉด ๋” ์ด์ƒ ์ƒˆ๋กœ๊ณ ์นจ์„ ํ•ด๋„ ์„ธ์…˜ Value๊ฐ€ ๋ฐ”๋€Œ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•
profile on loading

Loading...