慕课网《JAVA遇见HTML——JSP篇 第六章 JSP状态管理》学习笔记

慕课网课程网址:https://www.imooc.com/learn/166

备注:这篇博客中,截图中,我有个数字敲错了:10*24*60*60=864000,我写的是86400,少了个0。

第六章 JSP状态管理

6-1 http协议的无状态性,保存用户状态的两大机制:session和cookie

6-2 Cookie概述

6-3 JSP页面中创建与使用Cookie

6-4 案例:Cookie在登录中的应用

6-5 Session与Cookie的对比

6-1 http协议的无状态性

我们知道,我们进行Web应用程序开发,使用的传输协议叫做超文本传输协议,超文本传输协议存在一个先天不足,就是它是无状态的。

无状态是指,当浏览器发送请求给服务器的时候,服务器响应客户端请求。

但是当同一个浏览器再次发送请求给浏览器的时候,服务器并不知道它就是刚才那个浏览器。

简单来说,就是服务器不会记住你,所以就是无状态协议。

6-2 Cookie概述

JSP状态管理

保存用户的状态的两大机制

(1)Session(JSP九大内置对象之一)

(2)Cookie(这是一种客户端技术)

什么是Cookie:

Cookie:中文名称为“小甜饼”,是Web浏览器保存在客户端的一系列文本信息。

典型应用一:判定注册用户是否已经登录网站。

典型应用二:“购物车”的处理。(用户可能会在一段时间内访问同一家网站,访问不同的网页,选择不同的商品,我们可以把这些信息保存在客户端的cookie中,在最后结账付款时,把这些信息取出来。相当于我们使用cookie保存用户浏览商品的一些记录)

生活中Cookie的应用:(1)例如系统会自动记录已经浏览过的视频;(2)记住用户名和密码实现自动登录功能。

 

 

 Cookie的作用:

(1)对特定对象的追踪

(2)保存用户网页浏览记录与习惯

(3)简化登录

安全风险:容易泄露用户信息。

6-3 JSP页面中创建与使用Cookie

(1)创建Cookie对象:(键是Cookie对象的一个字符串描述,值是要保存的Cookie对象。)

Cookie newCookie = new Cookie( String key, Object value );

写入Cookie对象:

response.addCookie( newCookie );

读取Cookie对象:

Cookie[] cookies = request.getCookies( );

(2)跟Cookie有关的常用方法:

方法名称 说明
void setMaxAge( int expiry ) 设置cookie的有效期,以秒为单位
void setValue( String value ) 在cookie创建后,对cookie进行赋值
String getName( ) 获取cookie的名称
String getValue( ) 获取cookie的值
int getMaxAge( ) 获取cookie的有效时间,以秒为单位

 6-4 案例:Cookie在登录中的应用

实现记录用户名和密码功能:

 

 

 

 项目:

 

 

 

 

 

先看目前效果:

 

 

 

 

下面写代码:

 

 部署后效果:

(1)

 

 

 

 在地址栏中再次输入如下网址:

 

发现,登录页面上,已经显示了从cookie中读取的username和password。

(2)接上部继续,如果登录时,不勾选“十天内自动登录”:

 

 则users.jsp页面中取不到uesrname和password:

 

 再次访问login.jsp:

 

 发现确实没有session中确实没有usernameCookie和passwordCookie。

(3)继续:

 

 lisi,888888

 

 再次访问login.jsp:

 

 (4)如果登录时,用户名输入中文:

 

 

 

我们需要使用Java中url字符串编码与解码的一个工具类。这个工具类在java.net包里。

 

 

 

在访问login.jsp:

 

 

 (5)为了验证到底是通过会话session来保存的还是通过cookie来保存的,我们关闭浏览器,再访问:

 

 确实是通过cookie来保存的。

下面关闭tomcat服务器,重启:

 

 发现还是有。

我把服务器删了,新建一个tomcat服务器,部署上CookieDemo1项目:

 

 还是有。

这验证了cookie技术是客户端的技术。

6-5 Session和Cookie的对比

 

 

session cookie
服务器端(服务器的内存里)保存用户信息 客户端保存用户信息
session中保存的是Object类型 cookie保存的是String类型
随会话的结束而将其存储的数据销毁 cookie可以长期保存在客户端
保存重要的信息 保存不重要的客户信息

至此,第六章《JSP状态管理》学习结束。

posted on 2019-11-10 16:48  平凡力量  阅读(124)  评论(0编辑  收藏  举报