当添加cookie的代码是主页面(main.jsp)中包含的JSP片段(includes.jsp)的一部分时,通过JSP:INCLUDE,Cookies不会被添加到浏览器中. 当代码是主页面(main.jsp)的一部分时,代码工作正常.但是,我需要通过
当代码是主页面(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);
当它是main.jsp的一部分时,上面的工作正常,但当它是添加到main.jsp via的片段的一部分时,它不起作用.几乎就像渲染片段后重置响应对象一样.
<jsp:include>
使用
<jsp:include>
及其
docs说:
…
The
ServletResponse
object has its path elements and parameters remain unchanged from the caller’s. The included servlet cannot change the response status code or set headers; any attempt to make a change is ignored.…
(强调我的)
Cookie将在响应标头中设置.所以它停在这里.考虑编译时变量<%@include%>
,它在主JSP的源代码中直接内联.