Servlet:禁用cookie时为每个请求创建的新会话

时间:2016-08-27 02:53:59

标签: java session servlets cookies session-cookies

在Code下面我在Servlet中编写并从index.html向这个servlet发出请求。 表单index.html我传递要添加的会话的键和值。

HttpSession session = request.getSession(false);
if(session == null){
    session = request.getSession();
}

session.setAttribute(request.getParameter("key"), request.getParameter("val"));

Enumeration list = session.getAttributeNames();
while(list.hasMoreElements()){
    String k  = (String)list.nextElement();
    String v = (String)session.getAttribute(k);
    System.out.println(k +"\t\t"+v);
}
response.sendRedirect(response.encodeRedirectURL("index.html"));

启用cookie时,上面的代码工作正常。

明知我禁用了Cookie并运行此代码。 我期待将添加所有属性及其值。但我只得到最后一个。我观察到的是每次创建新会话时,每次都会更改带有JESSIONID的URL。

我在Chrome和Firefox中测试了这个。

请帮我检查一下我犯错的地方

由于

1 个答案:

答案 0 :(得分:0)

要在@Andreas的评论帮助下解决问题,我做了以下更改

  1. 我将index.html更改为index.jsp
  2. 而不是在表单操作中编写Servlet.do而是将其更改为response.encodeURL(“Servlet.do”)。
  3. 现在处于第二个等等,请求与先前的JESSIONID一起发送到服务器。

    感谢Andreas的帮助。