Servlet响应上设置的Cookie在转发的JSP请求中不可用

问题描述

我有一个简单的页面,用户可以单击一个按钮,然后将其转发到新页面。但是,如果不单击前一页上的按钮就无法访问新页面。单击该按钮时,它将发送一个cookie,以检查是否单击了该按钮。如果我使用request.sendRedirect(),则效果很好。但是,当使用request.forward()时,不会。我必须多次单击按钮,然后才能发送到新页面。下面是代码

//sends cookie when button is clicked
private void connect(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {

    Cookie cookie = new Cookie("connect","connected");
    cookie.setMaxAge(1);
    
    response.addCookie(cookie);
    
    RequestDispatcher dispatcher = request.getRequestDispatcher("connectAudio.jsp");
    dispatcher.forward(request,response);
}

浏览器检查cookie是否存在,如果不存在,则表明未按下该按钮,并使用按钮将其发送回页面

<c:if test="${empty cookie['connect']}">
<c:redirect url="index.jsp">
</c:redirect>
</c:if>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)