• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

在JSP页面中创建的Cookie在Servlet中不可用,只有JSESSIONID cookie可用

jsp 来源:Avinash Kumar 5次浏览

我创建了一个JSP页面,该页面创建两个cookie并将其添加到响应对象。这个页面有一个提交按钮,它调用一个servlet对象。这个servlet将尝试访问先前JSP页面存储的cookie,但它只能访问JSESSIONID cookie。这是如何造成的,我该如何解决这个问题?在JSP页面中创建的Cookie在Servlet中不可用,只有JSESSIONID cookie可用


===========解决方案如下:

当您没有明确设置cookie路径时会发生这种情况。然后它将默认为请求URI中的当前文件夹。当cookie的路径与当前请求URI相匹配时,浏览器将只发回cookie。

因此,假设您的JSP具有URI /pages/some.jsp,那么在JSP中创建的任何Cookie都将具有默认路径/pages。这意味着浏览器只会在匹配/pages/*的任何请求上发回cookie。如果您的servlet具有URI /someServlet,那么它将不会检索该cookie。它只会检索路径为/someServlet/的Cookie。

如果您想在整个应用程序中使用您的cookie,那么您需要明确设置路径为/。然后

Cookie cookie = new Cookie(name, value); 
cookie.setPath("/"); 
response.addCookie(cookie); 

这也将是可用在任何servlet或JSP上的不同的(子)文件夹中运行。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)