Session的创建和销毁

HttpSession的生命周期:

    1、创建一个HttpSession对象

    一个常见的错误是以为在有客户端访问时就被创建(若第一次访问某WEB应用的一个JSP页面,且该JSP页面的page指定的session属性为false)

  • 某servlet端程序(如servlet)调用HttpServletRequest.getSession()或HttpServletRequest.getSession(true)这样的语句才会被创建。
  • 若第一次访问某WEB应用的一个JSP页面,且该JSP页面的page指定的session属性为true,服务器会自动为该页面分配一个HttpSession对象。   

    2、销毁HttpSession对象:

  • 程序调用HttpSession对象的invalidate()方法
  • 距离上一次收到客户端发送的session id时间间隔超过了session的最大有效时间(默认30分钟,以秒为单位) 
  • 服务器进程被停止(或当前WEB应用被卸载)      
         注意:关闭浏览器只会使存储在浏览器内存的session cookie失效(默认cookie失效情况),不会使服务端的session对象失效(URL重写或持久化cookie的方式仍然可以找到该session对象)。

URL重写:
    
    servlet规范中引入了一种补充的会话管理机制,它允许不支持Cookie的浏览器也可以与WEB服务器保持连续的会话。

login.jsp代码:

<form action="<%= response.encodeURL("hello.jsp") %>" method="post">

username: <input type="text" name="username" 
value="<%= username %>"/>
<input type="submit" value="Submit"/>

</form>


访问login.jsp页面后,查看源代码如下,说明可以将jsessionid(sessionid)带到下一个页面,浏览器本身存储不了这个cookie

<form action="hello.jsp;jsessionid=20F5789F3CC331C0581CB5E74B14AF27" method="post">

username: <input type="text" name="username" 
value=""/>
<input type="submit" value="Submit"/>

</form>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值