Session

session(会话)
(1)什么是session?
服务器端为维护状态而创建的一个特殊的对象。
(2)工作原理
浏览器访问服务器时,服务器会创建一个session对象(该对象有一个唯一的id,称之为sessionId),服务器会将sessionId以cookie的方式发送过来,服务器端可以利用sessionId找到对应的session象。
(3)如何获得session?
方式一
HttpSession s = = request.getSession(true/false);
true:
先查看请求当中有没有sessionId,如果没有,则创建一个session对象;如果有sessionId,则依据该sessionId查找对应的session对象,如果找到了,则返回,找不到,则创建一个新的session对象。
false:
先查看请求当中有没有sessionId,如果没有,则返回null;如果有sessionId,则依据该sessionId查找对应的session对象,如果找到了,则返回,找不到,则返回null。
方式二
HttpSession s = request.getSession();
等价于HttpSession s = request.getSession(true);

(4)常用的方法
String getId() 获得sessionId
setAttribute(String name,Object obj);
//该方法有可能返回null
Object getAttribute(String name);
//解除绑定
removeAttribute(String name);
(5)session超时
a.什么是session超时
服务器会将空闲时间过长的session对象删除掉。
b.缺省的超时时间
服务器缺省的时间一般是30分钟。
在Tomcat文件夹下,./conf/web.xml中:
<session-config>
<session-timeout>30</session-timeout>
</session-config>
c.setMaxInActiveInterval(int seconds);
(6)怎样立即删除session
invalidate();

过滤器
(1)什么是过滤器
servlet规范当中定义的一种特殊的组件,用来拦截容器的调用过程。
注:
容器收到请求之后,通常情况下会调用servlet的service方法来处理请求,如果有过滤器,则容器先调用过滤器的方法。
(2)如何写一个过滤器
step1,写一个java类,实现Filter接口。
step2,在doFilter方法里面,编写拦截处理逻辑。
step3,配置(web.xml)。

猜你喜欢

转载自www.cnblogs.com/crazypokerk/p/8986779.html