Ste*_*veL 5 cookies jsp servlets jspinclude
当添加cookie的代码是主页面(main.jsp)中包含的JSP片段(includes.jsp)的一部分时,通过JSP:INCLUDE,Cookies不会被添加到浏览器中.
当代码是主页面(main.jsp)的一部分时,代码工作正常.但是,我需要通过片段添加cookie,因为该片段用于我希望添加cookie的几十个页面中.
注意:jsp:include是main.jsp标题部分的一部分(该片段还添加了许多javascript和css引用)
这是片段:
Cookie cookie = new Cookie ("test","test cookie");
cookie.setMaxAge(365 * 24 * 60 * 60);
cookie.setPath("/");
response.addCookie(cookie2);
Run Code Online (Sandbox Code Playgroud)
当它是main.jsp的一部分时,上面的工作正常,但当它是添加到main.jsp via的片段的一部分时,它不起作用.几乎就像渲染片段后重置响应对象一样.
在<jsp:include>被窝里的用途RequestDispatcher#include()和它的文档说:
...
该
ServletResponse对象有其路径元素和参数保持从主叫方的不变.包含的servlet无法更改响应状态代码或设置标头; 任何改变的尝试都会被忽略....
(强调我的)
Cookie将在响应标头中设置.所以它停在这里.考虑编译时变量<%@include%>,它在主JSP的源代码中实际内联.
| 归档时间: |
|
| 查看次数: |
1856 次 |
| 最近记录: |