본문 바로가기

JAVA

Cookie

-Cookie란?-

쿠키는 사용자 브라우저 클라이언트에 저장된다.

클라이언트 요청시 서버에서 확인하게 될경우 request.getCookies(); 객체를 사용 해야한다.

-Cookie 사용 방법-

-login.jsp-

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>

<%
Cookie [] cookies = request.getCookies(); //request 요청 통한 쿠키를 가지고옴

System.out.println("cookies :" + cookies); // 쿠키 로그 확인

if(cookies != null) //쿠키가 빈값이 아닐경우
{
for(Cookie c : cookies) // 쿠키 객체 foreach 실행
{
if(c.getName().equals("memberID")) // 쿠키내 getName()에서 memberID가 있을경우
{
response.sendRedirect("loginOk.jsp"); // loginOk.jsp 화면으로 sendRedirect 시킨다.
}
}
}
%>
<form action ="loginCon" method ="post">
ID : <input type="text" name="mID"><br>
PassWord : <input type="text" name="mPW"><br>
<input type="submit" value="login">
</form>
</body>
</html>

 

-loginCon.class-

package com.servlet;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet(name = "loginCon", value = "/loginCon")
public class loginCon extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter(); // 서버에서 사용자에게 응답을 보내줄때 PrintWriter 객체를 통한 화면 출력 가능

String mID = request.getParameter("mID"); // 문자열로 사용자의 요청 form submit된 아이디 파라미터 값을 받아온다
String mPW = request.getParameter("mPW"); // 문자열로 사용자의 요청 form submit된 비밀번호 파라미터 값을 받아온다

out.print("<p> ID : "+mID+"</p>"); //PrintWriter out 객체 동한 화면 구성
out.print("<p> ID : "+mPW+"</p>");

Cookie[] cookies = request.getCookies(); // 요청된 쿠키 값을 배열로 전달 받는다.
Cookie cookie = null; // cookie 객체의 빈값 선언

for(Cookie c : cookies) // 배열 내 데이터를 위한 foreach 진행
{
System.out.println("c.getName() : "+c.getName()+"c.getValue() : "+c.getValue()); // 디버그 콘솔 내 로그 확인
if(c.getName().equals("memberId")) // equals 통한 c.getName()에 멤버id가 있을경우
{
cookie = c; // c의 값을 쿠키에 담는다.
}
}

if(cookie == null) //쿠키가 null일 경우
{
System.out.println("cookie is null"); // 디버그 콘솔내 쿠키 빈값을 표출 하면서
cookie = new Cookie("memberID", mID); // cookie memberID내에, mID 값을 넣는다.
}


response.addCookie(cookie); //서버 응답에 cookie를 추가한다.
cookie.setMaxAge(60*60); // 쿠키가 유효 할 수 있는 시간 설정 객체

response.sendRedirect("loginOk.jsp"); // sendRedirect 객체 통한 loginOk.jsp 호출



}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response); // doGet 메소드에 작성된 로직을 doPost에서 호줄한다.
}
}

 

-loginOk.jsp-

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>

<%
Cookie[] cookies = request.getCookies(); // 쿠키 값을 request 객체 요청을 통해 받아온다.
for(Cookie c : cookies)
{
out.print("name : "+c.getName() + "</br>");
out.print("value : "+c.getValue() + "</br>");
out.print("------------------------------");

}

%>
</body>
</html>

'JAVA' 카테고리의 다른 글

JSP - 한글 처리  (0) 2021.07.05
Session  (0) 2021.07.01
JSP 내장객체  (0) 2021.06.27
JSP 스크립트  (0) 2021.06.27
form 데이터 처리  (0) 2021.06.26