쿠키(Cookie)란 ?
- 서버와 클라이언트가 요청, 응답 과정을 거치면 연결이 해제되기 때문에 다시 사용할 정보를 쿠키와 세션에 보관해두었다가 다시 사용할 수 있다.
- 쿠키는 서버에서 생성되어 클라이언트 측에 저장되며, 클라이언트가 다시 서버에 요청을 보낼 때 HTTP 메세지 헤더에서 정보를 확인할 수 있다.
→ Cookie 쿠키 - 클라이언트 (서버와의 연결 정보를 클라이언트에서만 관리)
Session 세션 - 서버 (클라이언트와의 연결 정보를 서버에서만 관리)
쿠키 예제
(설명은 주석 번호 순서에 따라 읽어주세요.)
login.jsp 파일
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | <%@page import="org.apache.jasper.tagplugins.jstl.core.ForEach"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% //1. 첫 쿠키 생성은 null이라 if문을 수행하지 않고 html로 넘어감. (request) //6. 응답 온 userId와 같다면 값을 넣어줌. // --> 쿠키가 저장됨. Cookie[] cookies = request.getCookies(); String hasUserId = ""; if (cookies != null) { for (Cookie c : cookies) { if (c.getName().equals("userId")) { hasUserId = c.getValue(); //표현식으로 input value태그에 넣음 //out.println("쿠키에 저장된 사용자 아이디 : " + hasUserId); break; } } } %> <!-- 2. html에서 웹 브라우저 띄우고 --> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>쿠키 사용해보기</title> </head> <body> <form action="loginProc.jsp" method="post"> <div> 아이디 : <input type="text" name="userId" value="<%=hasUserId %>" required="required"> </div> <div> 비밀번호 : <input type="password" name="password" value="1234" required="required"> </div> <div> <input type="checkbox" name="remember" value=""> 아이디 기억하기 </div> <div> <input type="submit" value="쿠키저장및삭제"> </div> </form> </body> </html> | cs |
loginProc.jsp 파일
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% // 3. 쿠키는 키와 값으로 이루어져 있으니 매개변수로 request해서 값을 긁어내야 함. // 4. remember를 선택했다면 if문 실행해서 Cookie를 생성, 유효기간 지정 후 response해서 응답해줌. // 4-2. remember를 선택하지 않았다면 else문을 실행해서 foreach문으로 유효기간 삭제, 그 지운 값을 response해서 응답해줌. // 5. login.jsp로 다시 응답 처리 //form 태그로 넘어오는 값을 파싱하는 기술 //form 태그에 MIME TYPE -> application/x-form ... //name="" 키 값을 찾아서 값을 긁어낼 수 있다. String inputId = request.getParameter("userId"); String inputPwd = request.getParameter("password"); String remember = request.getParameter("remember"); //여기 파일에 목적은 remember 값 유무에 따라 로직을 작성해서 (쿠키 사용) // remember는 <아이디 기억하기> if (remember != null) { // 쿠키 생성 - 생성자에 키와 값을 할당한다. Cookie cookie = new Cookie("userId", inputId); //쿠키 생성 cookie.setMaxAge(60 * 60 * 24 * 7); //쿠키 유효기간 : 7일간 유지 response.addCookie(cookie); } else { // 쿠키 삭제 remember에 사용자가 체크를 하지 않은 상태라면 쿠키를 삭제하기 Cookie[] cookies = request.getCookies(); if(cookies != null){ for(Cookie c: cookies){ if(c.getName().equals("userId")){ c.setMaxAge(0); response.addCookie(c); break; } } } } response.sendRedirect("login.jsp"); %> | cs |
'프로그래밍 > JSP 프로그래밍' 카테고리의 다른 글
JSP 프로그래밍_RequestDispatcher (0) | 2023.03.27 |
---|---|
JSP 프로그래밍_config 내장 객체, application 내장 객체, exception 내장 객체 (0) | 2023.03.27 |
JSP 프로그래밍_세션(session) (0) | 2023.03.23 |
JSP프로그래밍_JSP 스크립트와 JSP 내장 객체 (0) | 2023.03.23 |
JSP 프로그래밍 개념 정리 (0) | 2023.03.21 |