当前位置 : 主页 > 网络推广 > seo >

如何在Grails中设置和检索cookie?

来源:互联网 收集:自由互联 发布时间:2021-06-16
我正在尝试在Grails应用程序中使用cookie但没有成功.特别是,在测试套件控制器的show()方法中,我想将cookie设置为显示的最新测试套件;也就是说,params.id的值可用于show()方法.然后,在list()方法
我正在尝试在Grails应用程序中使用cookie但没有成功.特别是,在测试套件控制器的show()方法中,我想将cookie设置为显示的最新测试套件;也就是说,params.id的值可用于show()方法.然后,在list()方法中,我想提供一个显示最新测试套件的快捷方式(我尝试使用cookie设置的值).

但是,我设置的cookie(名为“tcCookie”)仅在show()方法中可见 – 而不是在list()方法中.这是代码:

在show()中:

request.cookies.each { println "show: cookie ${it.name} <${it.value}>" }

在list()中:

request.cookies.each { println "list: cookie ${it.name} <${it.value}>" }

我通过以下方式在show()方法中设置cookie:

Cookie cookie = new Cookie( "tcCookie", params.id )
cookie.maxAge = 315360000000L
response.addCookie( cookie )

当我在列表和显示视图之间来回切换(在show()之后使用params.id = 277)我得到:

show: cookie tcCookie <277>
show: cookie JSESSIONID <9DEBFB40F78B5E24A92C750157342069>
list: cookie JSESSIONID <9DEBFB40F78B5E24A92C750157342069>
show: cookie tcCookie <277>
show: cookie JSESSIONID <9DEBFB40F78B5E24A92C750157342069>
list: cookie JSESSIONID <9DEBFB40F78B5E24A92C750157342069>

在我看来,表示cookie“tcCookie”仅在show()方法中可见,这对我来说是无用的.我需要设置它以便在其他方法中可见.

此外,cookie tcCookie在多个会话中幸存 – 正如我所期望的那样 – 但仍然只在show()方法中可见.

也许我对饼干的理解是错误的,但我仍然被卡住了.任何帮助,将不胜感激.此外,浏览器中必须设置数百个其他cookie,使用我使用过的代码都无法看到,所以有没有办法获取其他cookie?

或者您可以阅读基本的Java文档并使用简单响应和请求对象来执行此操作:

Cookie homeCookie = new Cookie( 'home', 'name' )
homeCookie.path = '/'
homeCookie.maxAge = 0
response.addCookie homeCookie

String home = request.cookies.find{ 'home' == it.name }?.value
网友评论