Servlet基础(一):Cookie&&Session
java
一、对存储数据对象的分析
1.ServletConfig和servletContext的作用都是为了获取到XML文件中的参数
2.ServletConfig和Servlet是一对一的,每一个Servlet都会对应一个ServletConfig
3.ServletContext每一个项目只有一个,在部署项目的时候创建,一个ServletContext可以对应多个Servlet
4.cookie:一份小数据,由服务器向浏览器发送的一份数据,保存在浏览器上面。从面向对象的角度看就是一个对象
5.HTTP:w3c设置的规范,超文本传输协议,规定了服务器和浏览器之间如何通信的一种数据格式
二、Cookie
1.cookie:一份小数据,服务器发送给客户端,在客户端可以保存
2.cookie的name是不可以重复的 value是可以重复的,cookie的name发送重复的话,value会发生覆盖
3.Cookie只能保存合法的ASCII字符,如果要保存中文,需要将中文转换成合法的ASCII字符。cookie的name或者value是中文的话,可以用URLEncoder.encode()进行编码,可以用URLDecoder.decode()进行解码
4.cookie存储数据是有生命周期的,可以存储一定的时间,可以通过setMaxAge()设置数据存在的时间,默认情况下当浏览器关闭,cookie中的数据就会自动删除
5.删除cookie,setMaxAge(0),将时间长度设置为0就是删除cookie,setMaxAge()中的参数小于0,默认情况。大于0,按照设置的时间进行存储。
6cookie在多个Servlet之间是可以共用的,cookie的路径限制问题,可以用多级目录来解决,即更改cookie的路径。
7.浏览器在访问服务器上的某个地址时,会比较Cookie的路径与该路径是否匹配,只有匹配的Cookie才会发送给服务器。
8. 要访问的地址必须是Cookie的路径或者其他子路径,浏览器才会发送Cookie
例如:
Cookie的路径是/appName/file,则访问/appName/file/a.jsp或/appName/fiel/b.jsp时会发送Cookie
如果访问/appName/c.jsp则不会发送Cookie
可以用setPath()方法设置cookie的路径
Cookie c=new Cookie(“uname”,”jack”);
c.setPath(“/appName”);
response.addCookie(c );
9.Cookie的限制性:
>1.Cookie可以被用户禁止
>2.Cookie会将状态保存在浏览器端,不安全,对于敏感数据,需要加密后再使用Cookie来保存
>3.Cookie只能保存少量的数据,大约4Kb左右
>4Cookie的个数是有限制的
>5.Cookie只能保存字符串
cookie
三、Session:基于cookie的会话机制
1.session机制采用的是在服务器端保持 HTTP 状态信息的方案,Session是服务器对象
2.服务器创建request和response对象之前会创建Session,即当访问服务器的时候自动创建Session对象,懒加载方式调用,然后将Session放入request里面
3.服务器中每一个相应的Session对象都会有一个编号,服务器自动创建cookie,然后将session的编号放入cookie的键里,发送给浏览器,浏览器直接保存cookie
4.多个请求可以共用一个session,多个Servlet也可以共用一个session,多个浏览器访问应用程序也会使用同一个Session。
5.request.getSession(Boolean flag);
设置session是否可见
6.如何使用Session绑定对象:
如何使用session绑定对象
7.session在下列情况下被删除:
A.程序调用HttpSession.invalidate()
B.距离上一次收到客户端发送的session id时间间隔超过了session的最大有效时间
C.服务器进程被停止
注意:关闭浏览器只会使存储在客户端浏览器内存中的session cookie失效,不会使服务器端的session对象失效。
8.Session是有生命周期的,默认最大的等待时间是30分钟------Session超时,可以用session.setMaxInactiveInterval(int seconds);设置时间限制
9.Session的优缺点:
session的优缺点
10.Session也可以用来防止表单重复提交
11.Session和Cookie的区别:
session是数据,存放在服务器端
cookie是一份小数据,由服务器发送给浏览器,保存在浏览器
领取专属 10元无门槛券
私享最新 技术干货