# 목차
서버
사용자 저장소
Cookie cookie = new Cookie("name", value);
Cookie cookie = new Cookie("c", String.valueOf(result));
response.addCookkie(cookie);
Cookie[] cookies = requset.getCookies();
String _c = "";
if(cookes != null) {
for(Cookie cookie : cookie) {
if("c".equals(cookie.getName())) {
_c = cookie.getValue();
}
}
}
사용범위 | 생명주기 | 저장위치 |
---|---|---|
전역 범위에서 사용하는 저장 공간 | WAS가 시작해서 종료할 때 까지 | WAS 서버의 메모리 |
사용범위 | 생명주기 | 저장위치 |
---|---|---|
세션 범위에서 사용하는 저장 공간 | 세션이 시작해서 종료할 때 까지 | WAS 서버의 메모리 |
사용범위 | 생명주기 | 저장위치 |
---|---|---|
웹 브라우저에 별 지정한 path 범주 공간 | 브라우저에 전달한 시간부터 만료시간까지 | 웹 브라우저의 메모리 또는 파일 |
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>calc</title>
</head>
<body>
<form action="calc" method="post">
<div>
<input type="text" name="v">
</div>
<div>
<input type="submit" name="operator" value="+">
<input type="submit" name="operator" value="-">
<input type="submit" name="operator" value="=">
</div>
</form>
</body>
</html>
package com.song.pra;
import java.io.IOException;
import javax.servlet.ServletContext;
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;
import javax.servlet.http.HttpSession;
@WebServlet("/calc")
public class Calc3 extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// ServletContext app = getServletContext();
// HttpSession session = request.getSession();
Cookie[] cookies = request.getCookies();
String v_ = request.getParameter("v");
String op = request.getParameter("operator");
int v = 0;
if(!v_.equals("")) {
v = Integer.parseInt(v_);
}
int result = 0;
if(op.equals("=")) {
// int x = (Integer)app.getAttribute("value");
// int x = (Integer)session.getAttribute("value");
// 쿠키 꺼내기
int x = 0; // 변수 초기화
for(Cookie c : cookies) {
if(c.getName().equals("value")) {
x = Integer.parseInt(c.getValue());
break;
}
}
int y = v;
// String operator = (String) app.getAttribute("operator");
// String operator = (String) session.getAttribute("operator");
String operator = ""; // 변수 초기화
for(Cookie c : cookies) {
if(c.getName().equals("op")) {
operator = c.getValue();
break;
}
}
if(operator.equals("+")) {
result = x + y;
}else {
result = x - y;
}
response.getWriter().printf("result is %d", result);
} else {
// app.setAttribute("value", v);
// app.setAttribute("operator", op);
// session.setAttribute("value", v);
// session.setAttribute("operator", op);
// 쿠키는 문자열로 받을 수 있지만,
// XML, JSON을 이용하면 다양한 형태로 저장할 수 있다.
// valueOf -> INT형을 문자열로 변환해준다.
Cookie valueCookie = new Cookie("value", String.valueOf(v));
Cookie opCookie = new Cookie("operator", op);
valueCookie.setPath("/");
opCookie.setPath("/");
response.addCookie(valueCookie);
response.addCookie(opCookie);
}
}
}
setPath("path")
Cookie valueCookie = new Cookie("value", String.valueOf(v));
Cookie opCookie = new Cookie("operator", op);
valueCookie.setPath("/");
opCookie.setPath("/");
/
모든 페이지를 요청할 때마다 위 쿠키를 가져옴maxAge(만료날짜))
setMaxAge("만료날짜")
Cookie valueCookie = new Cookie("value", String.valueOf(v));
Cookie opCookie = new Cookie("operator", op);
valueCookie.setMaxAge(24*60*60); // 계산식이 가능하다.
Cookie valueCookie = new Cookie("value", String.valueOf(v));
Cookie opCookie = new Cookie("operator", op);
response.addCookie(valueCookie);
response.addCookie(opCookie);
Cookie[] cookies = request.getCookies();
String operator = "";
for(Cookie c : cookies) {
if(c.getName().equals("op")) {
operator = c.getValue();
break;
}
}
Servlet / JSP