Servlet基础 一:Cookie&Session

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是一份小数据,由服务器发送给浏览器,保存在浏览器

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190131A1A8GZ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券