์คํ๋ง ํ๋ ์์ํฌ๋ก ์ธ์ ์ ์ด์ฉํด ๋ก๊ทธ์ธ์ ๊ฐ๋จํ๊ฒ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค.
์ธ์ ์ด๋?
์ธ์ ์ ๋ํ ๊ฐ๋ ์ ๊ฐ๋จํ๊ฒ ์๊ณ ๊ฐ๊ฒ ์ต๋๋ค. ์ธ์ ์ ์ฟ ํค์ ํ ์ผ์ข ์ผ๋ก 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>
์ธ์ ์ ์์๋ณด๊ธฐ ์ํ์ฌ ์์ ๊ฐ์ด html ์ ์ค๋นํฉ๋๋ค.
๊ทธ ํ 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 ํ๊ทธ๋ฅผ ๋ง๋ค์ด์ค๋๋ค.
๊ทธ ํ ๋ก๊ทธ์ธ์ํํ์ธ์ aํ๊ทธ๋ฅผ ๋๋ฅด๋ฉด "/login"์ผ๋ก ์ด๋ํ๋ฉด์ ๋ค์ login controller๊ฐ ๋ฐ๊ฒ ๋๊ณ , ์ด์ ๋ ์ธ์ ์ด ์๊ธฐ๋๋ฌธ์ isNew๋ฅผ ๋์ด๊ฐ๊ณ ์กฐ๊ฑด else ๋ก์ง์ด ์คํ๋ฉ๋๋ค. ๊ทธํ ์ธ์ ์ ์ฌ์ด์ง user_id๋ฅผ ํ์ธํ์ฌ ๋ง์ฝ user_id๊ฐ ์๋ค๋ฉด ์ ์ฌ์ง๊ณผ ๊ฐ์ด ๋ํ๊ณ ๋ง์ฝ ์์ผ๋ฉด ๋ค์๋ก๊ทธ์ธํ์ธ์ ๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ๋ํ๋ฉ๋๋ค.
๋ง์ฝ ์๋ก์ด ๋ธ๋ผ์ฐ์ ์ ๊ฐ์ uri ์ ์ํ๊ฒ๋๋ฉด ๋ค์๋ก๊ทธ์ธํ์ธ์ ๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ๋ํ๋๋๋ฐ ์์์ ๋ง์๋๋ ธ๋ค์ํผ ์ธ์ ์ ํ๋ฐ์ฑ์ ๊ฐ์ง๊ณ ์์ด ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฐ๋๋ฉด ์ธ์ ์ด ๋ฐ๋๊ฒ ๋ฉ๋๋ค.
์ถ๊ฐ
for(Cookie cookie : cookies) {
System.out.println(cookie.getName());
System.out.println(cookie.getValue());
}
Cookie ํด๋์ค๋ฅผ ์ด์ฉํ๋ฉด ์ฟ ํค์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
์ธ์ ์ ๋ธ๋ผ์ฐ์ ์์ ์๋ก๊ณ ์นจํ ๋๋ง๋ค ๊ฐฑ์ ๋๋๋ฐ session์ ๋ํ ์์ฑ์ ์ ํด์ฃผ๋ฉด ๋ ์ด์ ์๋ก๊ณ ์นจ์ ํด๋ ์ธ์ Value๊ฐ ๋ฐ๋์ง ์์ต๋๋ค.
'...' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] StringUtils.isEmpty ์ฌ์ฉํ๊ธฐ (0) | 2020.12.30 |
---|---|
[MyBatis] mybatis์์ ๋ค์ ์ํ์ค ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ (0) | 2020.12.29 |
[JS] ์ฟ ํค๋ฅผ ์ฌ์ฉํด๋ณด์ (4) | 2020.12.28 |
[JS] ๊ฐ๋ฐ์๋๊ตฌ ์ฝ์์์ response ๊ฐ ์ถ๋ ฅํ๊ธฐ (0) | 2020.12.24 |
[JS]DOM ์ฝ๊ฒ ์ดํดํ๊ธฐ!! ๊ณ ์ฒ์ค์นด์ด๋ ์๋๋๋ค (4) | 2020.12.23 |