ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스트럿츠2 에서 쿠키 사용하기.
    카테고리 없음 2011. 8. 3. 21:56


    이거 찾느라 힘들었다... 웹은 전문이 아니기에.. 차라리 서블릿으로만 구성하는게 정신상 이로울 지도 모르는 일이다. 어설프게 아는게 병이다. ㅠㅠ 나처럼 고생 하는 사람이 없길 바라며 스트럿츠2 서블릿에서 response request 를 얻어와서 쿠키를 생성 / 조회 / 삭제 하는 코드만 정리해보았다. 

    package ememomo.cookie;
    import javax.servlet.http.Cookie;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.apache.struts2.StrutsStatics;
    import org.apache.struts2.interceptor.ServletRequestAware;
    import org.apache.struts2.interceptor.ServletResponseAware;
    import org.apache.tomcat.util.http.Cookies;

    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionSupport;

    public class CookieUserAction extends ActionSupport implements ServletResponseAware, ServletRequestAware{
     
     HttpServletResponse res = (HttpServletResponse)ActionContext.getContext().get(StrutsStatics.HTTP_RESPONSE);
     HttpServletRequest  req = (HttpServletRequest)ActionContext.getContext().get(StrutsStatics.HTTP_REQUEST);
     
     Cookie c[] = null;
     @Override
     public String execute() throws Exception {
      
      //쿠키 생성
      Cookie ck = new Cookie("cookiename", "cookievalue");
      ck.setPath("/");
      ck.setMaxAge((1000 * 60)  * 2);
      res.addCookie(ck);
      
      //쿠키목록
      c = req.getCookies();
      for(int i=0; i<c.length; i++){
       System.out.println("쿠키이름 : " + c[i].getName() + " 값 : " + c[i].getValue());
       
       //쿠키 삭제
       if(c[i].getName().equals("cookiename")){
        Cookie delck = new Cookie("cookiename", "");
        delck.setPath("/");
        delck.setMaxAge(0);
        res.addCookie(delck);
       }
      }
      
      return super.execute();
     }
     @Override
     public void setServletResponse(HttpServletResponse res) {
      // TODO Auto-generated method stub
      this.res = res;
     }

     @Override
     public void setServletRequest(HttpServletRequest req) {
      // TODO Auto-generated method stub
      this.req = req;
     }
    }


     
    결과는
    쿠키이름 : JSESSIONID 값 : 643697DC23A520F1C20ECD9139E03FC4
    쿠키이름 : cookiename 값 : cookievalue

    이런식으로 나온다. apache was 에서 JSESSIONID 를 만들므로 조건을 줄때 이부분은 배제하고 처리해야 한다.

    댓글

COPYRIGHT 2010 EpoNg. ALL RIGHTS RESERVED.