这次一下子上了3天课,知识和代码量都有些多,暂时先将老师的笔记写上,之后进行修改吧
一、什么是会话
用户开启一个浏览器,访问很多页面,关闭浏览器,这个过程称之为一个会话过程。(如同打电话)
二、用户的数据保存问题
三、两种解决技术
1、Cookie:客户端技术
1.1Cookie的特点
cookie的组成:key=value。
cookie的属性:
comment:注释
path:路径。默认path /day06/servlet/
cookie的path:/day06/servlet/
请求路径:/day06/Servlet1(不能访问到cookie)
cookie的path:/day06
请求路径:/day06/Servlet1(能访问到cookie)
cookie的path:/day06
请求路径:/day06/servet/Servlet1(能访问到cookie)
domain:域。。不设置有默认域 localhost
age:存活时间(秒):如果不设置该属性。存活时间就是浏览器进程。默认值是0
可以通过设置age为0的方式来删除cookie
注:path要一致,写回cookie
version:版本号
向客户端写cookie:HttpServletResponse.addCookie
服务器端获取客户端提交的cookie:HttpServletRequest.getCookies()
客户端针对一个网站,最多保存20个cookie
客户端最多能存300个cookie
每一个cookie的大小不能超过4Kb
2、Session:服务器端技术
2.1Session的特点
a、默认情况下(IE7-):开启一个浏览器进程就相当于开启了一次新会话
:由一个窗口触发另外一个窗口,这2个窗口属于同一个会话
、 :开启一个新tab窗口,与之前打开的窗口也属于同一个会话
b、HttpSession对象是在服务器端。针对每一个用户的每一次会话请求都会创建一个新的session对象。
服务器是如何知道那个session对象是哪个用户的呢?
HttpSession对象有一个唯一的ID。它把该ID以cookie的形式写给了客户端。JSESSIONID=sessionid
该cookie的默认存活时间是:浏览器进程。默认的path 当前的应用名称/day06
MD5加密
要使用到MessageDigest类,这是一个抽象类,通过getInstance("MD5")方法获得对象,参数为加密算法。
然后对象调用digest方法,参数为一个字符数组,返回的结果也是一个字符数组,被称为数据指纹。
这里还要用到Base64编码原理,BASE64Encoder base=new BASE64Encoder(),使用encode方法编码。