수정중...
[현상]
컨트롤러단에서 쿠키에 값을 집어넣기 위해
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);
}
%>