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

xiaoxiao2021-02-28  92

会话

容器几乎会做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"));

 

转载请注明原文地址: https://www.6miu.com/read-80203.html

最新回复(0)