一、生命周期:
(1)Session
Session创建:在你打开一个浏览器开始访问的时候,就创建了。
Session关闭:他在你关闭浏览器的时候或者默认时间(Tomcat是30分钟)后会销毁。
(2)Request
Request创建:是在页面向服务端发送一个请求时候,就产生了。这里就把servlet当作服务端
Request关闭:有两种情况:
A 使用了dispatcher把上级的request转给了下一个队员,这里request是传递的,还没被销毁。
B 使用了重定向sendredirect,request直接销毁了。打开下一个页面的是一个新的request。
用大白话说就是:
A 打电话给客服,客服说我帮你转接一下技术部,这个就是dispatcher,你没有发起第二次请求。
B 打电话给客服,客服说我给你技术部的电话,你自己去打吧!这样你就会发起第二次请求了,这就是重定向。
(3)验证:
创建一个requestlistener,在他的requestDestroyed(ServletRequestEvent arg0)和 requestInitialized(ServletRequestEvent arg0) 函数填写一个system.out,来观察。
结果与理解一致。
二、体会来源
有这个了解,是因为在学习过滤器设置访问权限这一部分遇到了问题。
A 已知:goodsList.jsp只有管理员能访问。
B 目标:
第一:没登陆的用户不能通过url直接访问
第二:管理员可以通过url访问(当然管理员本身通过login直接可以跳转到goods'List.jsp)
C 解决方法:
第一点不能直接想,想第二点的时候可以直接解决。
通过登陆后,如果是管理员会跳转到首页,这时候我们应该session.setattribute("xxx",dd);
这样就算到了首页,我们的session里面还是保留了xxx这个信息,通过这个我们就可以在过滤器里面判断是否为管理员。
(没有代码)