JSP/실전 JSP
13. Cookie
c0mmedes
2022. 11. 6. 00:52
13-1. Cookie란 ?
- 클라이언트와 서버의 연결을 유지시켜주는 방법
- 브라우저(클라이언트)와 서버가 연결을 시도한 흔적을 남김
- 보안에 취약할 수 있음
13-2. Cookie 구현
login.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
Cookie[] cookies = request.getCookies();
System.out.println("cookies : " + cookies);
if(cookies != null) {
for(Cookie c : cookies) {
if(c.getName().equals("memberId")) {
response.sendRedirect("loginOk.jsp");
}
}
}
%>
<form action="loginCon" method="post">
ID : <input type="text" name="mID"></br>
PW : <input type="password" name="mPW"></br>
<input type="submit" value="login">
</form>
</body>
</html>
loginOk.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
Cookie[] cookies = request.getCookies();
for(Cookie c : cookies) {
out.print("name : " + c.getName() + "</br>");
out.print("value : " + c.getValue() + "</br></br>");
}
%>
</body>
</html>
LoginCon.java
package com.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/loginCon")
public class LoginCon extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
String mId = request.getParameter("mID");
String mPw = request.getParameter("mPW");
out.print("mId : " + mId);
out.print("mPw : " + mPw);
Cookie[] cookies = request.getCookies();
Cookie cookie = null;
for (Cookie c : cookies) {
System.out.println("c.getName() : " + c.getName() + ", c.getValue() : " + c.getValue());
if(c.getName().equals("memberId")) {
cookie = c;
}
}
if(cookie == null) {
System.out.println("cookie is null");
cookie = new Cookie("memberId", mId);
}
response.addCookie(cookie);
cookie.setMaxAge(60*60);
response.sendRedirect("loginOk.jsp");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}