JavaWeb(二)Session

Session: 中文意思为“会话”。指的是客户端与服务器的一次会话。比如,我们打开一个网站,在这个网站中,我们访问了多少页面,点击了多少连接,都属于同一个会话。

  一般情况下在第一个JSP页面或Servlet被装载时,由服务器自动创建一个session,在用户退出时由服务器销毁。

  客户端在与服务端交互时,服务器为每个客户端新建一个session对象,并产生一个唯一的sessionID与该session对象相关联,而且这个sessionID是存放在客户端的Cookie中的,所以在交互时,不必每次都传回所有的Cookie值,只需要传回这个ID值。

  在实际的工程项目中,session对象往往最为一次会话期内共享数据的容器,用户程序可以把最能标识用户的信息(用户名、密码等)存放在session对象中,便于对用户的管理。

  session对象结束生命周期有几种情况:客户端关闭浏览器、session过期、调用invalidate方法是session失效。

·session对象的主要方法

  1.getAttribute(String name)     获取与指定名字相关的session对象的属性值。

  2.getAttribute()      获取session对象内所有属性名的集合。

  3.getCreationTime()    返回session对象的创建时间。

  4.getId()   返回session对象创建时JSP引擎为它设置的唯一ID号。

  5.invalidate()   取消session对象,使session对象不可用。

·利用Session实现一个简单的保持登录状态和安全退出按钮

    先实现一个简单的登录。像这样一个页面,现在是未登录状态。

         

  然后登录。登录成功之后,我们如果刷新页面,结果就不在登录状态。

         

  但是我们虽然把网页刷新了或者关闭了,但是session有缓存机制,虽然不是登录状态了,但是session中还是存在你的账号和密码。做个测试。

   在servlet中打印session创建的时间。

   控制台输出的时间。

  然后关闭页面,再重新加载页面。

   控制台的输出。

  说明虽然页面被刷新或关闭了,但是我们的账号信息还是在session的缓存中。

  

  所以如果要实现一个最简单的登录状态,我们只要在页面加载完毕后,将session中缓存的账号和密码做一个登录的判断就好了。

  

  

猜你喜欢

转载自www.cnblogs.com/MarcoRe/p/11748557.html
今日推荐