일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- spring
- servlet
- 단축키
- 반복문
- 자바
- ddit
- crud
- ibatis
- Error
- 대덕인재개발원
- nodejs
- FastAPI
- 배열
- jsp
- 맥
- JDBC
- API
- 자바문제
- pyqt
- 객체지향
- python
- Mac
- Android
- html
- Java
- 컬렉션프레임워크
- 생활코딩
- 이클립스
- Oracle
- Homebrew
Archives
- Today
- Total
romworld
Cookie 본문
CookieTest.jsp
<%@ 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>
<h3>Cookie 연습</h3>
<a href="<%=request.getContextPath() %>/cookieAdd.do">Cookie 정보 저장하기</a><br><br>
<a href="<%=request.getContextPath() %>/cookieRead.do">Cookie 정보 확인하기</a><br><br>
<a href="<%=request.getContextPath() %>/cookieDelete.do">Cookie 정보 삭제하기</a><br><br>
</body>
</html>
CookieAdd
package kr.or.ddit.basic.cookie;
import java.io.IOException;
import java.io.PrintWriter;
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("/cookieAdd.do")
public class CookieAdd extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Cookie 저장하는 방법
// 1. Cookie객체를 생성한다. ==> '쿠키이름'과 '쿠키값'을 문자열로 지정하여 생성한다.
// 형식) Cookie 쿠키변수 = new Cookie("쿠키이름","쿠키값");
// ==> '쿠키값'으로 한글을 사용할 경우에는 URLEncoder.encode()메서드로 인코딩 후에 저장한다.
Cookie nameCookie = new Cookie("name", "홍길동");
Cookie ageCookie = new Cookie("age", "25");
//Cookie ageCookie = new Cookie("age", String.valueOf(25)); 숫자로 쓰면 안되므로 이렇게 써줘도 된다
Cookie genderCookie = new Cookie("gender", "Male");
// 2. 쿠키 속성 설정하기
// nameCookie.setPath("적용경로"); // 지정한 경로와 그 하위 경로에서 사용 가능하다.
// ==> 생략하면 쿠키를 저장할 당시의 경로가 설정된다.
// 쿠키변수.setMaxAge(유지시간); // 단위(초), (-1: 브라우저가 종료될 때까지 유지(기본값)
// (0 : 즉시 쿠키가 삭제된다.)
// 쿠키변수.setDomain("적용도메인명"); // 예)".ddit.or.key" ==> www.ddit.or.kr, mail.ddit.or.kr
// 쿠키변수.setSecure(보안여부); // 적용true , 미적용 :flase
// 3. response객체를 이용해서 쿠키를 웹브라우저르 보내면 웨브라우저가 이 쿠키를 받아서 저장한다.
// 형식)response.addCookie(1번에서 만든 쿠키변수)
response.addCookie(nameCookie);
response.addCookie(ageCookie);
response.addCookie(genderCookie);
response.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=utf8");
PrintWriter out = response.getWriter();
out.println("<html><head><meta charset=utf-8><title>Cookie연습</title></head>");
out.println("<body>");
out.println("<h3>Cookie데이터를 저장했습니다</h3>");
out.println("<a href='" + request.getContextPath() + "/basic/cookie/cookieTest.jsp'>시작문서로 이동하기</a>");
out.println("</body></html>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
CookieRead
package kr.or.ddit.basic.cookie;
import java.io.IOException;
import java.io.PrintWriter;
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("/cookieRead.do")
public class CookieRead extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=utf-8");
PrintWriter out = response.getWriter();
// 저장된 쿠키 읽어오기
// 1. 전체 쿠키 정보를 Request객체를 이용하여 가져온다. ==> 가져온 쿠키 정보들은 배열로 저장된다.
// 형식) Cookie[] 쿠키배열변수 = request.getCookies();
Cookie[] cookieArr = request.getCookies();
out.println("<html><head><meta charset='utf-8'><title>쿠키 읽기</title></head>");
out.println("<body>");
out.println("<h3>저장된 쿠키 확인하기</h3><hr>");
if(cookieArr == null || cookieArr.length == 0 ) {
out.println("<h2>저장된 쿠키가 하나도 없습니다..</h2>");
}else {
// 쿠키 배열에서 해당 쿠키 정보를 구해온다.
for(Cookie cookie : cookieArr) {
// '쿠키이름' 구하기
String name = cookie.getName();
// '쿠키값' 구하기
String value = cookie.getValue();
out.println("쿠키이름 : " +name + "<br>");
out.println("쿠키값 : " + value + "<hr>");
}
}
out.println("<a href='" + request.getContextPath()
+ "/basic/cookie/cookieTest.jsp'>시작문서로 이동하기</a>");
out.println("</body></html>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
CookieDelete
package kr.or.ddit.basic.cookie;
import java.io.IOException;
import java.io.PrintWriter;
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("/cookieRead.do")
public class CookieRead extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=utf-8");
PrintWriter out = response.getWriter();
// 저장된 쿠키 읽어오기
// 1. 전체 쿠키 정보를 Request객체를 이용하여 가져온다. ==> 가져온 쿠키 정보들은 배열로 저장된다.
// 형식) Cookie[] 쿠키배열변수 = request.getCookies();
Cookie[] cookieArr = request.getCookies();
out.println("<html><head><meta charset='utf-8'><title>쿠키 읽기</title></head>");
out.println("<body>");
out.println("<h3>저장된 쿠키 확인하기</h3><hr>");
if(cookieArr == null || cookieArr.length == 0 ) {
out.println("<h2>저장된 쿠키가 하나도 없습니다..</h2>");
}else {
// 쿠키 배열에서 해당 쿠키 정보를 구해온다.
for(Cookie cookie : cookieArr) {
// '쿠키이름' 구하기
String name = cookie.getName();
// '쿠키값' 구하기
String value = cookie.getValue();
out.println("쿠키이름 : " +name + "<br>");
out.println("쿠키값 : " + value + "<hr>");
}
}
out.println("<a href='" + request.getContextPath()
+ "/basic/cookie/cookieTest.jsp'>시작문서로 이동하기</a>");
out.println("</body></html>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
CookieTest02.jsp. ( 카운트)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>Cookie 카운트</h3>
<div>
<table border='1'>
<tr>
<td><a href="<%=request.getContextPath() %>/cookieCountServlet.do">Cookie Count 증가 하기</a></td></tr><br><br>
<tr>
<td><a href="<%=request.getContextPath() %>/cookieCountDelServlet.do">Cookie Count 초기화 하기</a></td></tr>
</table>
</div>
</body>
</html>
CookieCountServlet
package kr.or.ddit.basic.cookie;
import java.io.IOException;
import java.io.PrintWriter;
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("/cookieCountServlet.do")
public class CookieCountServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=utf-8");
PrintWriter out = response.getWriter();
// 쿠키 이름은 'count'로 하기로 함
//count라는 쿠키가 있는지 검사한다.
Cookie[] cookies = request.getCookies();
int cnt = 0; // 쿠키값이 저장될 변수
if(cookies!=null) {
for(Cookie cookie : cookies) {
String name = cookie.getName(); // 쿠키 이름 구하기
if("count".equals(name)) { // 쿠키이름이 'count'인지 검사
cnt = Integer.parseInt(cookie.getValue()); // 현재의 쿠키값 구하기
break;
}
}
}
cnt++; //카운트 증가
// 증가된 카운트 값을 저장할 Cookie객체 생성
Cookie countCookie = new Cookie("count", String.valueOf(cnt));
response.addCookie(countCookie); // 쿠키 추가하기
out.println("<html><head><meta charset='utf-8'>");
out.println("<title>Cookie 연습</title></head>");
out.println("<style>div{border: 1px solid black; width:500px;}</style>");
out.println("<body>");
out.print("<div>");
out.println("<h2>어서오세요. 당신은 "+ cnt +"번째 방문입니다.</h2>");
out.println("<br><hr><br>");
out.println("<a href='"+ request.getContextPath() +"/cookieCountServlet.do'>카운트 증가하기</a>");
out.println("<a href='"+ request.getContextPath() +"/basic/cookie/cookieTest02.jsp'>시작문서로 가기</a>");
out.print("</div>");
out.println("</body></html>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
CookieCountDelete
package kr.or.ddit.basic.cookie;
import java.io.IOException;
import java.io.PrintWriter;
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("/cookieCountDelServlet.do")
public class CookieCountDelServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// count라는 쿠키이름을 갖는 쿠키를 찾아서 삭제하기
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=utf-8");
PrintWriter out = response.getWriter();
// 쿠키 정보 가져오기
Cookie[] cookies = request.getCookies();
if(cookies!=null) {
for(Cookie cookie : cookies) {
String name = cookie.getName();
if("count".equals(name)) { // 쿠키이름이 count인 쿠키 찾기
cookie.setMaxAge(0); // 쿠키의 유지시간을 0으로 설정한 후 다시 저장한다.
response.addCookie(cookie);
}
}
}
out.println("<html><head><meta charset='utf-8'>");
out.println("<title>Cookie 연습</title></head>");
out.println("<style>div{border: 1px solid black; width:500px;}</style>");
out.println("<body>");
out.println("<div>");
out.println("<h2>Count가 초기화 되었습니다.</h2>");
out.println("<br><br>");
out.println("<a href='"+ request.getContextPath() +"/basic/cookie/cookieTest02.jsp'>시작문서로 가기</a><br><br>");
out.println("</div>");
out.println("</body></html>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
'JAVA > 개념정리' 카테고리의 다른 글
Session (0) | 2022.12.06 |
---|---|
Cookie 2 ( login) (0) | 2022.12.06 |
Servlet 3 ( request, response, forward,redirect) (1) | 2022.12.06 |
Servlet 2 (0) | 2022.12.06 |
Servlet (0) | 2022.12.06 |
Comments