Cookie
์ฟ ํค๋?
์น๋ธ๋ผ์ฐ์ ์์ ์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ฉด, ์๋ฒ์ธก์์๋ ์๋ง์ ๋ก์ง์ ์ํํ ํ ๋ฐ์ดํฐ๋ฅผ ์น๋ธ๋ผ์ฐ์ ์ ์๋ตํ ํ ์๋ฒ๋ ์น๋ธ๋ผ์ฐ์ ์ ๊ด๊ณ๋ฅผ ์ข
๋ฃํ๋ค.(http ํ๋กํ ์ฝ ํน์ง)
์ฐ๊ฒฐ์ด ๋๊ฒผ์ ๋ ์ด๋ค ์ ๋ณด๋ฅผ ์ง์์ ์ผ๋ก ์ ์งํ๊ธฐ ์ํ ์๋จ์ผ๋ก ์ฟ ํค๋ฅผ ์ฌ์ฉํ๋ค. ์ฟ ํค๋ ์๋ฒ์์ ์์ฑํ๋ฉฐ, ์๋ฒ๊ฐ ์๋ ํด๋ผ์ด์ธํธ์ธก์ ํน์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค. ์๋ฒ์ ์์ฒญํ ๋ ๋ง๋ค ์ฟ ํค์ ์์ฑ๊ฐ์ ์ฐธ์กฐ ๋๋ ๋ณ๊ฒฝํ ์ ์๋ค.
์ฟ ํค๋ 4kb๋ก ์ฉ๋์ด ์ ํ์ ์ด๋ฉฐ, 300๊ฐ๊น์ง ๋ฐ์ดํฐ ์ ๋ณด๋ฅผ ๊ฐ์ง ์ ์๋ค.
์ฟ ํค ์ ํจ๊ธฐ๊ฐ์ ์ค์ ํฉ๋๋ค.
์ฟ ํค์ฌ์ฉ์ ์ ํจ ๋๋ ํ ๋ฆฌ๋ฅผ ์ค์ ํฉ๋๋ค.
์ฟ ํค์ ๊ฐ์ ์ค์ ํฉ๋๋ค.
์ฟ ํค ๋ฒ์ ์ ์ค์ ํฉ๋๋ค.
์ฟ ํค ์ ํจ๊ธฐ๊ฐ ์ ๋ณด๋ฅผ ์ป์ต๋๋ค.
์ฟ ํค ์ด๋ฆ์ ์ป์ต๋๋ค.
์ฟ ํค์ฌ์ฉ์ ์ ํจ ๋๋ ํ ๋ฆฌ ์ ๋ณด๋ฅผ ์ป์ต๋๋ค.
์ฟ ํค์ ๊ฐ์ ์ป์ต๋๋ค.
์ฟ ํค ๋ฒ์ ์ ์ป์ต๋๋ค.
์ฟ ํค ์์ฑ(์๋ฒ) โ ์์ฑ ์ค์ โresponse๊ฐ์ฒด์ ํ์ฌ ์์๋ก ์งํ๋๋ค.
<%
Cookie cookie = new Cookie("CookieName","CookieValue");
/* ์ผ๋ง๋์ ์ ์ง๋ ๊ฒ์ธ์ง ์ต๋ ์๋ช
์ด๋ค. */
cookie.setMaxAge(60*60);
response.addCookie(cookie);
%>
<%
Cookie[] cookies = request.getCookies();
for(int i=0;i<cookies.length;i++){
out.println("cookies[" + i + "] name : " + cookies[i].getName() + "<br />");
out.println("cookies[" + i + "] value : " + cookies[i].getValue() + "<br />");
out.println("=====================<br />");
}
%>
์ฟ ํค ์ญ์ ๋ ์ ํจ๊ธฐ๊ฐ setMaxAge๋ฅผ 0์ผ๋ก ์ค์ ํ๊ณ ์์ฑ ๋ณ๊ฒฝํ ๊ฒ์ response ๊ฐ์ฒด์ ์ ์ฉํ๋ฉด๋๋ค.
<%
Cookie[] cookies = request.getCookies();
for(int i=0;i<cookies.length;i++){
out.println("cookie name : "+cookies[i].getName() );
cookies[i].setMaxAge(0);
response.addCookie(cookies[i]);
}
%>
์ฟ ํค ์ฌ์ฉ ์์
ํ์
ex)"์ค๋ ๋ ์ด์ ์ด ์ฐฝ์ ๋ณด์ง ์์"
์ผํ๋ชฐ์ ์ฅ๋ฐ๊ตฌ๋
์ฟ ํค๋ ๋ณด์์์ ๋ฌธ์ ๊ฐ ์์ ์ ์๋ค. ํดํน๊ณผ ๊ฐ์ ํ์ง๋ง ๊ผญ ์๊ณ ์์ด์ผํ๋ ๊ฐ๋
์ด๋ค.
์ธ์
์ธ์
์ด๋?
์ธ์
๋ ์ฟ ํค์ ๋ง์ฐฌ๊ฐ์ง๋ก ์๋ฒ์์ ๊ด๊ณ๋ฅผ ์ ์งํ๊ธฐ ์ํ ์๋จ์ด๋ค.
๋จ, ์ฟ ํค์ ๋ฌ๋ฆฌ ํด๋ผ์ด์ธํธ์ ํน์ ์์น์ ์ ์ฅ๋๋ ๊ฒ์ด ์๋๋ผ, ์๋ฒ์์ ๊ฐ์ฒด๋ก ์กด์ฌํ๋ค. (์ฟ ํค๋ ๋ก์ปฌ์์ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ๋ณด์์ ์ทจ์ฝํ๋ค.)๋ฐ๋ผ์ ์ธ์
์ ์๋ฒ์์๋ง ์ ๊ทผ์ด ๊ฐ๋ฅํ์ฌ ๋ณด์์ด ์ข๊ณ , ์ ์ฅํ ์ ์๋ ๋ฐ์ดํฐ์ ํ๊ณ๊ฐ ์๋ค.
๋ก๊ทธ์ธ๊ณผ ๊ฐ์ด ์ ๋ณด๋ฅผ ์ ์ฅํ ๋ ๋ง์ด ์ฌ์ฉ๋๋ค.
๋ฌธ๋ฒ
์ธ์
์ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ๋ฐ์ํ๋ฉด ์๋์ผ๋ก ์์ฑ๋๋ค. session์ด๋ผ๋ ๋ด๋ถ ๊ฐ์ฒด๋ฅผ ์ง์ํ์ฌ ์ธ์
์ ์์ฑ์ ์ค์ ํ ์ ์๋ค.
์ธ์
์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ ํฉ๋๋ค.
์ธ์
์์ ๋ฐ์ดํฐ๋ฅผ ์ป์ต๋๋ค.
์ธ์
์ ์ ์ฅ๋์ด ์๋ ๋ชจ๋ ๋ฐ์ดํฐ์ ์ด๋ฆ(์ ๋ํฌํ ํค๊ฐ)์ ์ป์ต๋๋ค.
์๋ ์์ฑ๋ ์ธ์
์ ์ ๋ํฌํ ์์ด๋๋ฅผ ์ป์ต๋๋ค.
์ธ์
์ด ์ต์ด ์์ฑ๋์๋์ง, ์ด์ ์ ์์ฑ๋ ์ธ์
์ธ์ง๋ฅผ ๊ตฌ๋ถ ํฉ๋๋ค.
์ธ์
์ ์ ํจ์๊ฐ์ ์ป์ต๋๋ค. ๊ฐ์ฅ ์ต๊ทผ ์์ฒญ์์ ์ ๊ธฐ์ค์ผ๋ก ์นด์ดํธ๋ฉ๋๋ค.
(C:\javalec\apache-tomcat-7.0.57\apache-tomcat-7.0.57\conf\web.xml ์ฐธ์กฐ)
์ธ์
์์ ํน์ ๋ฐ์ดํฐ ์ ๊ฑฐ ํฉ๋๋ค.
์ธ์
์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํฉ๋๋ค.
session.getAttribute()๋ Objectํ์
์ผ๋ก ๋ฐํ๋๋ค. ๋ณํ์ด ํ์ํ๋ค.
Init
<%
session.setAttribute("sessionName", "sessionValue");
session.setAttribute("abcde", 12345);
%>
Get
<%
Object obj1 = session.getAttribute("mySessionName");
String mySessionName = (String)obj1;
out.println(mySessionName +"<br />");
%>
์ธ์
์ ๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ์ ์งํ๋๋ฐ ์์ด์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ค.
Session vs Cookie
ํด๋ผ์ด์ธํธ์ ์ ์ฅ
๋ณด์ ์ทจ์ฝ
ํด๋ผ์ด์ธํธ ๋ก์ปฌ์ ์ ์ฅ๋๊ธฐ ๋๋ฌธ
์ธ์
๋ ๋ง๋ฃ์์ ์ ์ ํ ์ ์์ง๋ง, ๋ธ๋ผ์ฐ์ ์ข
๋ฃ์ ์ญ์
์ง์ ํ ์ฟ ํค ๋ง๋ฃ์๊ฐ
์ธ์
์ ์๋ฒ์ ์์์ ์ฌ์ฉํ๊ธฐ๋๋ฌธ์ ๋ฌด๋ถ๋ณํ๊ฒ ๋ง๋ค๋ค๋ณด๋ฉด ์๋ฒ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฐ๋นํ ์ ์์ด์ง ์๊ฐ ์๊ณ ์๋๊ฐ ๋๋ ค์ง ์ ์๊ธฐ ๋๋ฌธ์ ์ฃผ์ํด์ผํ๋ค.
์์
์ฟ ํค
<!--login.html-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="logincheck.jsp" method="post">
์์ด๋ : <input type="text" name="id" size="10"><br>
๋น๋ฐ๋ฒํธ : <input type="password" name="pw" size="10">
<input type="submit" value="์ ์ถ">
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%!
String id,pw;
%>
<%
id = request.getParameter("id");
pw = request.getParameter("pw");
if(id.equals("abcde")&&pw.equals("12345")){
Cookie cookie = new Cookie("id",id);
cookie.setMaxAge(60*60);
response.addCookie(cookie);
response.sendRedirect("welcome.jsp");
}else{
response.sendRedirect("login.html");
}
%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
Cookie[] cookies = request.getCookies();
if(cookies!=null){
for(int i=0;i<cookies.length;i++){
if(cookies[i].getValue().equals("abcde")){
cookies[i].setMaxAge(0);
response.addCookie(cookies[i]);
}
}
}
response.sendRedirect("cookietest.jsp");
%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
Cookie[] cookies = request.getCookies();
for(int i=0;i<cookies.length;i++){
String id = cookies[i].getValue();
if(id.equals("abcde"))
out.println(id + "๋ ์๋
ํ์ธ์!");
}
%>
<a href="logout.jsp">๋ก๊ทธ์์ํ๊ธฐ</a>
</body>
</html>
์ธ์
๋ก๊ทธ์ธ
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="logincheck2.jsp" method="post">
์์ด๋ : <input type="text" name="id" size="10"><br>
๋น๋ฐ๋ฒํธ : <input type="password" name="pw" size="10">
<input type="submit" value="์ ์ถ">
</form>
</body>
</html>
๋ก๊ทธ์ธํ์ธ
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%!
String id,pw;
%>
<%
id = request.getParameter("id");
pw = request.getParameter("pw");
if(id.equals("abcde")&&pw.equals("12345")){
session.setAttribute("id", id);
response.sendRedirect("welcome2.jsp");
}else{
response.sendRedirect("login.html");
}
%>
</body>
</html>
๋ก๊ทธ์ธ ํ ํ๋ฉด
<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String sName, sValue;
Enumeration enumeration = session.getAttributeNames();
while(enumeration.hasMoreElements()){
sName = enumeration.nextElement().toString();
sValue = session.getAttribute(sName).toString();
out.println( sValue + "๋ ์๋
ํ์ธ์!<br />");
}
%>
<a href="logout2.jsp">๋ก๊ทธ์์ํ๊ธฐ</a>
</body>
</html>
๋ก๊ทธ์์(์ธ์
์ญ์ )
<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
Enumeration enumeration = session.getAttributeNames();
while(enumeration.hasMoreElements()) {
String sName = enumeration.nextElement().toString();
String sValue = (String)session.getAttribute(sName);
if(sValue.equals("abcde")) session.removeAttribute(sName);
}
%>
<a href="sessiontest.jsp">sessionTest</a>
</body>
</html>
์ฐธ๊ณ ํ์ด์ง