2020.11.29 고급자바 수업 Cookie - 쿠키 저장

기본 - 


<% page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Cookie 연습</title>

</head>

<body>


    <!-- request.getContxtPath() ==> /servletTest --> 


    <a href="<%=request.getContextPath()%>/cookieAddServlet.do"> Cookie 정보 저장하기 </a>

    <br>

    <br>



    <a href="<%=request.getContextPath()%>/cookieReadServlet.do">Cookie정보읽기</a>

    <br>

    <br>


    <a href="<%=request.getContextPath()%>/cookieDeleteServlet.do">저장된 Cookie정보 삭제하기 </a> 


</body>

</html> 



-----------------------------------------------------------------------------------------------------

//쿠키를 추가하는 서블릿 연습 

//Cookie 를 저장하는 방법 및 순서 

1. Cookie 객체 생성한다. => '쿠키변수' 와 '쿠키값' 은 문자열로 지정한다. 

형식) Cookie cookie 변수 = new Cookie("쿠키변수" , "쿠키값")

=> 쿠키값으로 한글로 사용할 경우에는 URLEncoder.encode() 메서드로 인코딩한 후에 사용

//'쿠키변수'가 중복되면 나중에 저장한 값으로 변경된다. 


Cookie nameCookie = new Cookie("name" , URLEncoder.encode("홍길동" , "utf-8")); 

Cookie ageCookie = new Cookie("age" , "27"); 

Cookie addrCookie = new Cookie("addr" , "daejeon"); 


//2. Cookie 의 속성을 설정한다. 


cookie변수.setPath("경로"); => 쿠키가 적용될 경로를 지정한다. 

(지정한 경로와 그 하위 경로에서 사용가능) 

cookie변수.setMaxAge("유지시간"); ==> 단위 : 초 

cookie변수.setDomain("도메인명"); ==> 적용할 도메인명을 지정한다. 

cookie변수.setSecure(보안여부); ==> 보안여부( true : 적용/ false: 미적용 ) 

4개를 다 지정해도 되고 필요한것만 설정해도 된다. 


//3. response 객체를 이용해서 쿠키를 웹브라우저에 보내면 웹브라우저가 이 쿠키를 받아서 저장한다. 

형식 ) response객체.addCookie(1번에서 만든 cookie 객체 ) 

 response.addCookie(nameCookie); 

 response.addCookie(ageCookie);

 response.addCookie(addrCookie); 









package kr.or.ddit.cookie;


import java.io.IOException;

import java.io.PrintWriter;

import java.net.URLEncoder;


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;



//js 파일에서 context경로설정과 여기 있는 보라색 부분으로 링크를 생성했다. 

@WebServlet("/cookieAddServlet.do")

public class CookieAddServlet extends HttpServlet {

    private static final long seriaVersionUID = 1L ; 



    protected void doGet(HttpServletRequest request, HttpServletResopnse response ) throws ServletExcetion, IOException {

        request.setCharacterEncoding("utf-8"); 

        response.setCharacterEncoding("utf-8");

        response.setContentType("text/html; charset=utf-8"); 

        PrintWriter out = response.getWriter(); 


        

//쿠키객체 생성하기 


    Cookie nameCooki = new Cookie("name" , URLEncoder.encoder("홍길동" , "utf-8" )); 

    Cookie ageCookie  = new Cookie("age" , "27"); 

    Cookie addrCookie = new Cookie("addr" , "daejeon" ) ; 



    //response 객체를 이용해서 쿠키를 웹브라우저에 보내면 웹브라우저가 이 쿠키를 받아서

    저장한다. 


    response.addCookie(nameCokie); 

    response.addCookie(ageCookie); 

    response.addCookie(addrCookie); 


    out.println("<html><head><meta charset = 'utf-8"); 

    out.println("<title>Cookie 연습 </title></head>"); 

    out.println("<body>"); 

    out.println("<h2>Cookie 데이터가 저장되었습니다 </h2><br><br>"); 

    out.println("<a href='" + request.getContextPath() + "/02/cookieTest.jsp'>시작문서로 이동하기 </a>"); 


    out.println("</body>"); 

    out.println("</html>"); 

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request, response);

}


}

















----------------------------------------------------------------------------------------------------










댓글