2012-02-01 7 views
0

iam имеет страницу jsp Index.jsp, которая принимает только строку unicode в качестве своего параметра и передает форму в Result.jsp. Мне нужно, чтобы сохранить куки для строки, введенной пользователем каждый раз, когда пользователь введите новое значение строки куки будет изменен я wriiten следующий кодНевозможно получить добавленное приложение cookie

В index.jsp я упаковали печенья

<% 
     Cookie ck= new Cookie("DNString",";"); 
     response.addCookie(ck); 
%> 

и в сервлет я пытаюсь управлять и установить значение куки каждый тим EUSER отправляет форму

private void fnSetCookieValues(HttpServletRequest request,HttpServletResponse response) 
    { 

     Cookie[] cookies=request.getCookies(); 
     for (int i = 0; i < cookies.length; i++) { 

      System.out.println(""+cookies.length+"Name"+cookies[i].getName()); 
      if(cookies[i].getName().equals("DNString")) 
      { 
       System.out.println("Inside if:: "+cookies[i].getValue()+""+cookies.length); 
       cookies[i].setValue(request.getParameter("txtIIDN")); 
      } 
     } 

    } 

, но проблема в том, что в то время как getCookie() оно не дает DNString как печенье, но только показывает 1NameJSESSIONID as System.out.println ("" + cookies.length + "Name" + cookies [i] .getName()); Заявление выходного

, но, глядя througn браузер как

enter image description here он показывает DNString как печенье хранится

может кто-нибудь выяснить проблемы и возможные решения для него.

Благодаря

ответ

0

Проблема может быть из-за ; быть разделителем параметров печенья.

Значение ";" добавил в первый раз идет к клиенту с заголовком ответа, как это:

HTTP/1.1 200 OK 
Server: tomcat 
Set-Cookie: DNSString=;;JSESSIONID=some-id-value 
... 
... 

Клиент отправляет куки в следующем запросе, как это:

GET /someurl Http/1.1 
Host: server.com 
Cookie: DNSString=;;JSESSIONID=some-id-value 

Я думаю, что где-то синтаксический разбор терпит неудачу, потому что само значение является разделителем.

+0

, но я думаю, что Cookie ck = новое Cookie ("DNString", ";"); response.addCookie (ск); уже создали файл cookie и добавили в объект ответа, который отправит его на клиентскую сторону –

+0

, да, это первый раз. Но вы не можете изменять файлы cookie, которые вы получаете из HttpServletRequest.getCookies(). Модификация таких файлов cookie не будет отправлять cookie клиенту. У клиента все еще будет старое значение. –

+0

Изменен мой ответ. –