5.5.2 加入session
session是一个网站所有页面都能访问的一个表格。这个表格只有两列,类似于这样:
| 名称 | 值 |
|---|---|
| abc | 123 |
| username | zhang |
每增加一个session数据,表格就多一行数据,行数并没有限制(如果内存足够的话)。数据都是以“名称-值”这样的对来保存的,读取的话,是根据名字来读取的。
下面这个是保存一对数据到session,名称是abc,值是123
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<% session.setAttribute("abc","123");%>
以下是从session中读取名称为"abc"session可以直接保存对象,全部以Object类型保存,读取出来的时候,需要把Object类型转换成对应的类型才能使用。在一个页面保存一条session数据,可以在其余页面读取。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<% String value=(String)session.getAttribute("abc");%>
session表格是可以给任何jsp页面访问到的,所以登录状态的保持是这样一个逻辑
1.登录成功后,把登录成功的状态写入session
2.其他页面检查session是否有登录成功的项目,如果有,那就是已经登录过,否则就是未登录
那什么叫做登录成功的状态呢?
其实就是一个名字而已,例如可以这样,把登录的用户名作为值写入到isLogin
<% session.setAttribute( "isLogin" , "abc" );%>假如别的页面通过读取session的isLogin的值,看是不是true,就知道是否登陆过:
<% String value=(String)session.getAttribute( "isLogin" );%>如果这个value的值是空的(null),那么就是未登录。否则这个值,就是登录的用户名。
尝试将登录状态保存到user.jsp,同时在user.jsp的最上方写上“欢迎你回来,xxxx”,这个xxxx就是已登录的用户
如果未登录状态进入user.jsp,那么直接退回到登录页面。