这个东西反而没那么难,我们来解释下
Session是服务器上的东西,有很多很多。而我们浏览器会对应一个Session,对应的方式就是我们浏览器Cookie会自带一串密钥,对应上服务器上的Session。我们可以通过请求头里面的密钥来控制服务器上的Session,也就是后端上面的。我们在Cookie当中有一个问题,就是如何让用户没登陆的情况下,也就是服务器没记住的情况下禁止没登陆前往首页。
JSESSIONID 这个 Cookie,是服务器自动生成、自动发送的,不是你自己写的!
浏览器第一次访问服务器时,就会自动拥有!
那么现在,我们在用户登录成功之后,将用户对象添加到Session中,只要是此用户发起的请求,我们都可以从HttpSession中读取到存储在会话中的数据:
1 | HttpSession session = req.getSession(); |
同时,如果用户没有登录就去访问首页,那么我们将发送一个重定向请求,告诉用户,需要先进行登录才可以访问:
1 | HttpSession session = req.getSession(); |
Session也是有过期时间的,默认30分钟,我们可以在web.xml配置文件中改,单位是分钟:
1 | <session-config> |
我们也可以在代码中使用invalidate方法来使Session立即失效:
1 | session.invalidate(); |
当然和上节课一样,这节课也有问题,就是这样一个一个写太麻烦了,我们怎么样才能让某些网址是可以直接进的,有些是必须要登陆的,而这就是我们Filter要讲的事情了。
说些什么吧!