当前位置: 代码迷 >> 综合 >> 笔记——会话、cookie、url重写
  详细解决方案

笔记——会话、cookie、url重写

热度:22   发布时间:2023-10-19 17:07:13.0

会话

容器几乎会做cookie的所有工作,如

在响应中发送一个会话cookie(从请求中得到会话ID)

HttpSession session = request.getSession();

在服务器中请求一个会话,余下的事情会自动完成

  • 建立新的HttpSession对象
  • 生成唯一的会话ID
  • 建立新的Cookie对象
  • 把会话ID与cookie关联
  • 在响应中设置Cookie(在Set-Cookie首部下)

Session.isNew()

用户还没用这个会话ID做过响应isNew就返回true

如果没有启用cookie,客户不会加入会话,isNew()方法总是会返回true

response.sendRedirect(response.encodeURL(url));

如果只想要一个已经有的会话

HttpSession session =request.getSession(false);  //如果没有与此客户关联的会话,返回null
If(session == null){// do something
}

 

关键的HttpSession方法

  • getCreationTime():返回第一次创建会话的时间
  • getLastAccessedTime():返回容器最后一次得到包含这个会话ID的请求后过了多长时间(毫秒)
  • setMaxInactiveInterval():指定对于这个会话客户请求的最大间隔时间(秒)
  • getMaxInactiveInterval():返回对于这个会话客户请求的最大间隔时间(秒)
  • invalidate():结束会话。当前存储在这个会话中的所有属性也会接触绑定

 

会话的三种死法

  • 超时
  • 在会话对象上调用invalidate()
  • 在部署描述文件中配置会话超时
<session-config><session-timeout>15</session-timeout>  <!-- 15分钟 -->
</session-config>

设置特定会话的会话超时

Session.setMaxInactiveInterval(15*60);    //15分钟

 

Cookie在浏览器关闭后仍能存活

Cookie cookie = new Cookie(“username”,name);Cookie.setMaxAge(30*60);  //单位秒,设置在客户端存活多久Response.addCookie(cookie)         //将cookie发送到客户

 

URL重写

jsp中

Cookie cookie = new Cookie(“username”,name);
Cookie.setMaxAge(30*60);  //单位秒,设置在客户端存活多久
Response.addCookie(cookie)         //将cookie发送到客户

servlet中

Stringpath = request.getContextPath();
response.sendRedirect(response.encodeURL(path+"/MyJsp.jsp"));

 

  相关解决方案