반응형
#37강 쿠기 삭제하기
- 계산기에서 C버튼 클릭 시 쿠키 삭제되도록 구현하기
- 기존 작업 파일 중 Calc3.java에 쿠키 삭제 관련 코드 등록.
package com.newlecture.web;
import java.io.IOException;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
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("/calc3")
public class Calc3 extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Cookie[] cookies = request.getCookies(); // 쿠키를 읽을 때 request 사용
// 사용자가 입력한 내용
String value = request.getParameter("value");
String operator = request.getParameter("operator");
String dot = request.getParameter("dot");
// 쿠키에서 읽어와서 사용자가 입력한 내용 덧붙이는 작업.
String exp = "";
if(cookies != null)
for(Cookie c : cookies)
if(c.getName().equals("exp")) {
exp = c.getValue();
break;
}
if(operator != null && operator.equals("=")) {
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
try {
exp = String.valueOf(engine.eval(exp));
} catch (ScriptException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 쿠키 삭제 조건.
} else if(operator != null && operator.equals("C")) {
exp = "";
} else {
// 쿠키로 저장하는 작업.
// exp에 누적 진행(아래 중 null이 아닌 값 1가지만 오게됨)
exp += (value == null)?"":value; // value가 null이면 ""빈문자열, 그렇지 않다면 value값을.
exp += (operator == null)?"":operator;
exp += (dot == null)?"":dot;
}
Cookie expCookie = new Cookie("exp", exp);
// 쿠키 삭제
if(operator != null && operator.equals("C")) {
expCookie.setMaxAge(0);
}
response.addCookie(expCookie);
response.sendRedirect("calcpage"); // redirect 사용 경로 우회
}
}
반응형
'프로그래밍 > 자바, JDBC' 카테고리의 다른 글
뉴렉처 학습(서블릿/JSP) 38강 (0) | 2020.05.21 |
---|---|
Json 파서 직접 구현 개념(Json 저장하기/Json불러오기) (0) | 2020.05.20 |
뉴렉처 학습(서블릿/JSP) 36강 (계산기 만들기) (0) | 2020.05.19 |
뉴렉처 학습(서블릿/JSP) 34강 ~ 35강 (0) | 2020.05.18 |
JSON 이용방법 (0) | 2020.05.18 |