大二下学期学习进度(四)

编程时间:12小时左右

代码行数:约550行

博客园发表量:2篇

所学知识点:

主要学会了cookie 和session的用法

Cookie是Web服务器保存在用户硬盘上的一段文本。
Windows系统中保存路径C:\Documents and Settings\登录用户名\Cookies

cookie分为临时cookie和长久cookie。如果一个cookie没有设置有效期,那么浏览器在关闭时就会删除这个cookie,这种cookie叫做临时cookie,如果cookie设置了有效期,那么浏览器会一直保存这个cookie,直到有效期为止,这种cookie叫做长久cookie。
cookie常用于存储用户的登录信息。
服务器识别客户端Cookie的三个步骤:

1.服务器脚本发送一系列cookie至客户端浏览器。
2.浏览器在本地机中立即存储这些信息
3.当下一次浏览器发送任何请求至服务器时,它会同时将发送这些cookie信息到服务器,然后服务器使用这些信息来识别用户或者进行其他的操作。


获取cookie的代码:

Cookie[] cookies = request.getCookies();
作用:
Cookie对象通常用于在浏览器端保存与服务器会话过程中的一些数据。
当浏览器访问Web服务器(某一站点)时,相应的cookie会自动发送到服务器上。

 

写入Cookie的主要步骤:
创建Cookie对象
设定Cookie的属性(一般设置Cookie的有效期)
调用response.addCookie(Cookie c)方法将其写入到客户端
<%
    Cookie c=new Cookie("season","spring");
    c.setMaxAge(30);    //cookie的有效期为30秒
    response.addCookie(c);
%>

 

Session对象存储在服务器端,作用是在会话范围内,记录每个客户端的访问状态,以便于跟踪每个客户端的操作状态
它所实现的接口为:javax.servlet.http.HttpSession
可以在jsp页面中直接使用session对象,也可以通过pageContext.getSession() 或 request.getSession ()方法重新获取

工作原理

1.客户首次访问服务器的一个页面时,服务器就会为该客户分配一个session对象,同时为该session对象指定一个唯一的ID,并将该ID号发送到客户端并要求客户端写入到Cookie中,使得客户端与服务器对应该客户端的某一个session对象建立一对一的关系。

2.当客户继续访问服务上的其他资源时会在HTTP头中带上session ID,服务器不再为该客户分配新的session ID,直到客户端浏览器关闭、超时或调用session的invalidate()方法时期失效,客户端与服务器的会话结束。
3.当客户端重新打开浏览器访问网站时,服务器会重新为客户分配一个Session对象,重新分配Session id。

 

cookie session不同

不同:
存放地点:cookie存放在客户端的硬盘里,属于离线存放,而session存放在服务器的内存中。
存活时间:cookie可以长期存放在客户端,具体的存活时间由setMaxAge()方法所指定的数值决定,session随用户访问服务器而产生,随客户超时或下线而消失。
安全性:cookie存放在客户端,可能会被别有用心的网站读取,安全性较差,而session存放在服务器的内存中,用户不能修改,且随客户端浏览器的关闭而消失,安全性较好。
联系:不论是cookie还是session内置对象都需要浏览器支持cookie并且没有禁用cookie。

posted @ 2019-03-30 19:35  云破月来花弄影  阅读(136)  评论(0编辑  收藏  举报