1.Session概述:
Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在 Session 对象中。有关使用 Session 对象的详细信息,请参阅“ASP 应用程序”部分的“管理会话”。注意 会话状态仅在支持 cookie 的浏览器中保留。
在web中session就代表了一次会话(request.getSession().getAttribute())
一次建立连接和一次关闭连接称之为会话
session会在客户端第一次向服务器请求的时候,在服务器上被创建,服务器响应客户端的时候就会传送给客户端,此时sessionID保留在客户端
当客户端第二次向服务器发送请求的时候会带上sessionid---->首先要寻找相同sessionid,如果找到就标识来过,如果没有找到,服务器就会重新创建一个sessionid返回给客户端
session什么时候被销毁:
(session的不活动周期)
A.不活动周期:当在10秒钟之内任意一秒刷新了页面(操作当前session),失效时间会自动重置为10秒,setMaxInactiveInterval设置失效使用
B.关闭服务器
C.关闭浏览器
D.配置session自动失效((tomcat服务器)默认失效时间为30m)
*****如果使用的是tomcat服务器,不允许修改tomcat的web.xml中的session失效时间
E.invalidate()方法,强制失效(坚决不让用)
session常用的方法:
******setAttribute(key,value);为session对象设置一个值
******getAttribute(key);通过设置的key获取对应的值
******removeAttribute(key);通过设置的key移除对应的键值对
(不常用)getAttributeNames();获取设置的key的值,返回的是一个枚举
setMaxInactiveInterval(int seconds);设置session的失效时间,单位是秒
getMaxInactiveInterval();获取session的失效时间,单位是秒
******isNew();当前session对象是否为新创建的对象,返回boolean类型
2.三层架构实例(实现接口封装JDBC):
三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的目的即为了“高内聚低耦合”的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或称为领域层)、表示层。