一、会话概述:
指客户端和服务器之间连续发生的一系列请求和响应的过程。网购的整个过程就是一个完整的会话。此次作业的目的就是为了熟悉、学习并实现会话技术。在客户端和服务器端交互的过程中会产生数据,我们需要做到将每个客户端的数据分别存放并计算。
二、cookie对象:
1.cookie对象的作用:cookie的功能类似于实现生活中的会员卡,当用户通过浏览器访问web服务器时,服务器会给客户端发送消息,并将消息存储在cookie中。这样,当该浏览器在此访问服务器时,都会在请求头中将cookie发送给服务器,方便服务器对浏览器做出正确的响应。
2.cookie API:为了封装cookie信息,在Servlet API中提供了一个Javax.servlet.http.Cokie类,该类包含生成cookie信息和提取cookie信息的各个属性的方法。
(1)构造方法:public cookie(java.lang.String name,java.lang.String value)
(2)显示用户上次访问时间:使用cookie对象实现该任务,示例如下:刷新后显示上次访问时间
三、Session对象:
cookie技术虽然可以将用户信息保存在浏览器中,并实现数据共享。但是当数据量比较大时,会增加服务器程序处理的难度,而Session技术则可以将会话数据保存在服务器中。
1.Session对象:Session的功能类似实现生活中的就诊卡,该卡不储存数据,只有卡号id信息,数据存储在医院中。当客户端访问服务器时,服务器内的Servlet就会创建一个Session对象和id属性。此后客户端再访问服务器时,只要匹配相应的标识符,就能选择与之相对应的Session对象为其服务。
2.HttpSessiong API:Session是与每个请求消息紧密相关的,而HttpServletRequest定义了用于获取对象的getSession()方法,该方法有两种重载形式。
publlic HttpSessiong getSession(boolean create)
publlic HttpSessiong getSession()
3.Session超时管理:为了防止web服务器内存耗尽,在一定时间里,如果每个客户端一直没有请求访问,那么web服务器就会认为客户端结束请求,这时服务器会将该客户端的HTTPSession对象变成垃圾对象并等待垃圾收集器将其从内存中释放掉。此后客户端再次向web服务发送请求时,再重新构建一个HTTPSession对象和相对应的id属性。
4.实现购物车:通过Session技术模拟实现购物车的功能。示例如下:
(1)创建封装图书信息类
(2)由于我们没有相关数据库,因此我们需要创建一个模拟数据库的类
(3)接下来完成购物车功能 ,创建一个Servlet类获取并显示数据库中的数据
创建新的两个Servlet类,实现购物车的存放功能。
5、实现用户登录功能:通过Session技术实现用户登录功能。
(1)创建封建用户信息类
编写登录界面代码,将用户名和密码发送到编写好的servlet对象判断是否正确
创建一个Servlet类,用于实现判断用户名和密码是否正确。
若正确则重定向至编写好的用户界面,表示登录成功。 若不正确这再该界面输出显示“用户名或密码错误,请重试”。
创建一个Servlet类,用于清除用户信息即退出登录,在登陆成功后,点击退出链接实现退出登录的功能。



