Как получить в Java значение cookie, который был создан в JavaScript? - PullRequest
0 голосов
/ 21 декабря 2011

Я создал cookie в javascript, но когда я пытаюсь получить значение в java, я получаю предыдущее значение - куки не обновляются.есть ли способ обновить куки, чтобы я получил правильное значение?это javascript:

<script>
    function setCookie(name,value,days) { 
         if (days) {    
            var date = new Date();     
            date.setTime(date.getTime()+(days*24*60*60*1000));   
            var expires = "; expires="+date.toGMTString();
         }   
          else  {
          var expires = "";
          }
          document.cookie = name+"="+value+expires+"; path=/";
          alert (value);
    }
    function getCookie(c_name)
        {
        var i,x,y,ARRcookies=document.cookie.split(";");
        for (i=0;i<ARRcookies.length;i++)
          {
          x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
          y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
          x=x.replace(/^\s+|\s+$/g,"");
          if (x==c_name)
            {
            return unescape(y);
            }
          }
    }
    function del_cookie(name) {
    document.cookie = name +
    '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
    }

  $j(document).ready(function(){
      // remove all click-events from header_nav_submenu 
        $j(".header_nav_submenu").unbind('click');  
        $j(".header_nav_submenu").click(function(){
        var goHref = $j(this).attr('href'); 
        del_cookie("last_page_nav");
        alert(getCookie("last_page_nav"));
        setCookie("last_page_nav", goHref.substring(7), 7); 
        alert(getCookie("last_page_nav"));
    });
});
</script>

и вот как я пытаюсь получить значение из cookie в java:

if(FriendlyURLUtil.getFriendlyURL(request.getServerName())==null){
            Cookie[] cookies =  ((HttpServletRequest) request).getCookies();
            for(int i = 0; i < cookies.length; i++) { 
                if (cookies[i].getName().equals("last_page_nav")) {
                    System.out.println("The days " + cookies[i].getMaxAge());
                    System.out.println("The cookie says " + cookies[i].getValue());
                    ((HttpServletResponse) response).sendRedirect(cookies[i].getValue());
                }
            } 

        }

Ответы [ 2 ]

0 голосов
/ 21 декабря 2011

удалить старые куки

document.cookie = ckName + "=" + "; истекает = чт, 01-янв-70 00:00:01 GMT";

if (document.cookie.length> 0) {c_start = document.cookie.indexOf (ckName + "=");

if (c_start! = -1) {c_start = c_start + ckName.length +1;c_end = document.cookie.indexOf (";", c_start);if (c_end == -1) c_end = document.cookie.length;вернуть unescape (document.cookie.substring (c_start, c_end));}
}

Вы можете получить куки из HttpServletRequest

Cookie [] cookies = request.getCookies ();

еслиВы хотите указать все имя и значение файла cookie, выполнить итерацию массива

для (int index = 0; index

0 голосов
/ 21 декабря 2011

Срок действия вашего файла cookie истек в 01-Jan-70 00:00:01 по Гринвичу, т.е. 1 января, 70 года AC, т.е. 1940 лет назад.Это причина того, что серверная сторона не получает его.Проверьте способ создания даты истечения срока действия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...