会话:
Session指的是在一段时间内,单个客户与Web服务器的一连串相关的交互过程
会话跟踪:
当客户访问服务器的时候,Servlet容器就会创建一个HttpSession接口的对象Sessions,并将对应的客户端和session中存入SessionID,当客户下次访问的时候,调出相应的Session就可以了。
会话跟踪有三种方法:
1、 协议的支持
2、 客户端:cookie技术
3、 服务器和客户端:cookie(内存中的)+session
其中第二种技术没有续时性。第三中技术具有续时性。
例:
假设session中时效是1小时,用户在第一次访问与第二次访问的间隔时间在45分,第三次访问时间又在45分后,则第二中技术则不会保存用户访问的信息,而第三种则保存了用户的信息。
可以使用到的对象有page、request、session、application。其中资源消耗的也是依次增大,其作用域也不相同。
会话创建
HttpSession session=request.getSession(boolean value);
HttpSession session=request.getSession();
其中request.getSession() = = request.getSession(true)。 //客户第一登录没有session记录,创建一个并返回。
区别在request.getSession(false) :如果客户第一登录没有session记录,返回null,如果有记录返回相应的session
会话的使用
session.setAttribute(String name,Object value);
session.getAttrbute(String name);
在session作用域中存入相应的值.
HttpSessiond对象的存在周期
1、 创建
a) request.getSession()
2、 使用
a) setAttribute(String name,Object value) ;进行数据的保存
b) getAttribute(String name);进行数据的读取
3、 结束
a) 关闭浏览器,关闭session :失效
b) 调用HttpSession的invalidate()方法,删除HttpSession对象的数据。 :消失
c) 两次访问时间间隔大于session定义的非活动时间间隔。 :消失
在session结束时,服务器会清空当前浏览器相关的数据信息
扩展知识:一个静态的属性,可以用初始静态块初始化相应的对象。
例:private static List
static{
bookList=new List
………
}
规范:字母和数字混合用的时候,字母最好大写,以便于区分。
for 循环的新的使用方法。格式:
for(Book b :bookList){
b…….
}
此方法适用于泛型集合。解释:b对象是bookList中的一个对象,依次循环。
CSS样式:
.clear{clear:both;}
解释:为清除层悬浮。
margar:0 auto; 解决两个浏览器的不兼容问题。
JSP中新写法
${b.isbn } :解释:引用对象b中的isbn属性
例 :
……
图书编号: <%=b.getIsbn() %> 图书价格: ${b. price} 版本号: <%=b.getEditionNumber() %> 版 权: <%=b.getCopyright() %> 订购
……