2015-04-20 3 views
0

Я пытаюсь удалить cookie при запуске веб-страницы сервера Liferay. Страница полностью статична, и ее содержимое накапливается с помощью wigdets. Я новичок в этом, поэтому я получил подсказку, чтобы создать новый wigded, который загружен на эту страницу, и единственная функция - удалить некоторые определенные файлы cookie.Удалить файлы cookie при запуске страницы

Так я поставил новый wigded на этой странице, заставил его загрузить некоторые Jsp файл, и этот файл содержит следующий код:

<% 
Cookie[] cookies = request.getCookies(); 
if (cookies != null) 
{ 
    for (Cookie cookie:cookies) 
    { 
     if(cookie.getName().equals("Cookie1") || cookie.getName().equals("Cookie2")) 
     { 
      Cookie clearCookie = new Cookie(cookie.getName(), null); 
      clearCookie.setMaxAge(0); 
      clearCookie.setPath("/"); 
      response.addCookie(clearCookie); 
     } 
    } 
} 
%> 

До сих пор это один работает частично. Он получает все Cookies из объекта запроса, он также находит оба куки, которые я ищу, но когда дело доходит до той части, где файлы cookie должны быть заменены, изменений нет. Даже если я пытаюсь создать новые куки-файлы, он не работает, я полагаю, что он связан с объектом ответа, потому что мне, вероятно, придется его доставить. Но как я могу это достичь?

Я также пробовал с Javascript, как это:

<script> 
    window.onload = function() { 
     document.cookie = "Cookie1=;Path=/"; 
     document.cookie = "Cookie2=;Path=/"; 
    }; 
</script> 

Вот проблема, что печенье я хотел заменить, не были заменены. Вместо этого этот скрипт создал вторую партию файлов cookie с тем же именем и контуром, что и первый, но с пустым значением.

ответ

0

Вот как нам удалось контролировать куки. Вы можете создать hook, который расширяет класс Action. Вот часть кода, которую вы можете использовать.

public class ManageCookiesAction extends Action { 

    @Override 
    public void run(HttpServletRequest request, HttpServletResponse response) 
     throws ActionException { 

    Cookie[] cookies = request.getCookies(); 

    /** Manage cookies in you scenario... **/ 

    } 
} 

затем в ../resource/portal.properties

servlet.service.events.pre=net.your.hook.class.package.ManageCookiesAction 

Мы использовали его, чтобы управлять перенаправлением на сайт, сохраненного в куки каждого пользователя (они могут иметь свои собственные домашние сайты на нашем портале) Может быть полезно и в вашем сценарии. Удачи.

Смежные вопросы