SPRING
2021.04.29 / 14:41

[eGovFrame] 쿠키 사용 제한

하얀소
추천 수 40

수정중...


[현상]
컨트롤러단에서 쿠키에 값을 집어넣기 위해
response.addCookie(이름,값)해도 쿠키가 생성되지 않아 당황스러움..

[원인]
스프링에서는 컨트롤러에서 쿠키에 값 Set처리하는게 안된다고 함..
인터셉터나 Jsp에서 하는 건 가능하다고 하나..
전자정부표준v2.0에서 제공하는 jsp샘플을 통해 테스트해도 생성되지 않아 더 당황스러움..

[결론]
CookieGenerator 클래스이용..하거나 Service가 아닌 jsp에서 직접 쿠키 생성.

1. CookieGenerator 이용
CookieGenerator cg =
 new CookieGenerator();

cg.setCookieName("쿠키이름");
cg.addCookie(response, 값);

참조URL : http://static.springsource.org/spring/docs/1.1.x/api/org/springframework/web/util/CookieGenerator.html 

2. jsp에서 직접 쿠키 이용

EgovCookieProcessCusotm.jsp

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page language="java" contentType="text/html; charset=UTF-8" session="false" %>
<%@ page import="egovframework.com.utl.cas.service.EgovSessionCookieUtil"  %>
<%@ page import="java.util.*"  %>
<%@ page import="java.net.*"  %>
<%!
    String safeGetParameter (HttpServletRequest request, String name){
        String value = request.getParameter(name);
        if (value == null) {
            value = "";
        }
        return value;
    }
%>
<%!
    void setCookie (HttpServletRequest request, HttpServletResponse response, String cookieNm, String cookieVal, int period){
   
        Cookie cookie = new Cookie(cookieNm, cookieVal);
        cookie.setMaxAge(60*period);
        cookie.setPath("/");
        response.addCookie(cookie);
    }


 
 String getCookie (HttpServletRequest request, String cookieNm ) {  
  Cookie[] cookies = request.getCookies();
  if(cookies == null){
   return "";
  }
  String cookieValue = null;
  
  for (int i=0; i < cookies.length; i++) {
   if(cookieNm.equals(cookies[i].getName())) {
    
    cookieValue = cookies[i].getValue();
   }
  }
  
  return cookieValue;
 }

 void delCookie (HttpServletResponse response, String cookieNm){
    Cookie cookie = new Cookie(cookieNm, "");
    cookie.setMaxAge(-1); // 0 : 쿠키 삭제 , -1 : 쿠키 파일 생성 안됨. 브라우저 닫힌 후 삭제(default)
    cookie.setPath("/");
    response.addCookie(cookie);
}

%>

 



출처: https://ggagun.tistory.com/entry/eGovFrame-쿠키-사용-제한 [새끼붕어와 연두꽃]