cookie和session

1.HTTP协议:是一个无状态的协议。上一次请求完成,请求中数据全部没有,与下一次请求无任何联       系。

2.浏览器与服务器会话:打开一个浏览访问一个网站,发送多次请求(点开多个链接),到关闭浏览器,这个过程我们叫浏览器与服务器的一次会话。存会话数据有两种技术:Cookie,Session

3.Cookie:通过浏览器将用户信息保存到客户端。cookie按Key-value对方式存值。
        cookie如果没有设置时间,cookie中数据保存在内存中;cookie如果设置时间,cookie中数        据保存在客户端磁盘上。
        浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限            制为4KB。
        优点:减轻服务器的压力;客户端加载数据快;
        缺点:存储数据不安全;存储的数据长度有限制;
        3.1:cookie常用方法:
            response.addCookie(Cookie cookie) ;//将cookie存入通过客户端浏览器存到客户端
            request.getCookies():cookie[];//获取用户客户端当前网站所有cookie;
            Cookie 对象名=new Cookie(String key,String value);//创建cookie对象;
            getName();//获得cookie对象的Key名
            getValue();//获得cookie对象的value值
            setMaxAge(int expiry);//设置cookie有效期,以秒为单位

4.Session:将会话中的数据保存在服务器的内存中。Session按Key-value对方式存值。
        Session原理:当用户第一次打开浏览器访问网站时,网站会为这个用户生成一个会话,并                        在服务器内存开辟一块会话空间供当前用户存会话数据。服务器会为每个会                    话空间取一个标志,标志叫SessionId,存在当前客户端的浏览器Cookie                        中。当用户再次发送请求时,服务器检查客户端浏览器有无SessionId,如                        果有SessionId就找到SessionId在服务器上对应的会话空间,可以存,取数                    据。
        优点:存储数据安全;存储的数据长度无限制;
        缺点:存数据时服务器压力大;读取数据相对慢一点;
        4.1:Session常用的方法
            getId();//获得当前会话的SeesionId
            setAttribute(String name, Object value);//按Key-Value对方式存数据
            getAttribute(String name);//通过Key名获得Value值
            removeAttribute(String name);//通过Key删除Key-Value对
            setMaxInactiveInterval(int interval) ;//设置session最大非活动时间
            getServletContext();//获得ServletContext对象

5.Cookie VS Session
    5.1:Cookie将数据存在客户端的内存和磁盘上;Session将值存在服务器端的内存中。
    5.2:Cookie存数据安全性差;Session存数据安全性高。
    5.3:cookie可以长久存数据;Session存储数据的时间有限。
    5.4:cookie对同一个网站最多只能存20个cookie,每个Cookie最大只能4KB;Session存存储数            据的长度无要求。
    5.5:Cookie存的值是String类型;session存的值是Object类型

6.学生系统:梳理已做的功能
    6.1:注册
        6.1.1:建注册页面(form+table)
        6.1.2: 将注册信息提交到后台
        6.1.3:后台功能实现:
                6.1.3.1:先接收注册信息
                6.1.3.2:根据注册用户名遍历用户集合判断用户是否已注册
                6.1.3.3:如果用户集合遍历完了,发现用户名没注册,此用户可以注册,将用户添加到用户集合,并3秒后跳转到登录页面。
                6.1.3.4:如果用户集合遍历完了,发现用户名已注册,3秒后跳转到注册页面并提示注册失败的信息。

    6.2:登录
        6.2.1:建登录页面(form+table)
        6.2.2: 将注册信息提交后台Servlet处理
        6.2.3:登录Servlet中:
                6.2.3.1:先接收用户验证码,判断用户输入的验证码与生成的验证码是否一致
                6.2.3.2:如果验证码不一致,跳转到登录页面并提示验证码输入有误。
                6.2.3.3:如果验证码一致,接收用户登录的信息,遍历用户集合,判断用户信                            息是否存在。
                6.2.3.4:遍历完用户集合,发现用户信息不存在,跳转到用户登录页面,并提                            示登录失败;
                6.2.3.5:遍历完用户集合,发现用户信息存在,用户可登录成功,先将用户信息存到Session中留到后面备用。然后再跳转到用户管理页面。

    6.3:验证码:
        6.3.1:先用Servlet生成一个验证码。
        6.3.2:在登录页面的验证码的图片,图片路径src中请求生成验证码的Servlet得到验证码图片。
        6.3.3:点击看不清验证码时,给验证码的图片路径重新发送请求,为了让浏览器知道我的每一次验证码图片请求不是同一个请求,我们在请求图片的路径请求上添加了一个变量,让变量的值尽量不一致,这样每次请求都可以重新生成一张新的验证码图片。

    6.4:记住我功能:
    6.4.1:登录页面要复选框记住我
    6.4.2:在登录的Servlet中登录成功后,判断复选框是否选中,如果选中就用Cookie记住用户名
    6.4.3:在登录页面获得Cookie中的用户名,在用户名文本框中显示。

6.5:注销:其实在本系统中相当退出功能
    6.5.1:先将存到当前会话Session中的用户信息清除。
    6.5.2:跳转到登录页面,让用户重新登录。

6.6:修改密码
    6.6.1:创建修改密码页面(form+table)
    6.6.2: 在密码页面,判断原密码,新密码,确认密码
    6.6.3:跳转到后台Servlet修改密码
    6.6.4:后台Servlet修改密码
            6.6.4.1:先接收要修改的用户名(当前的Session)和新密码
            6.6.4.2:根据用户名遍历用户集合,查找到要修改的用户,并将用户的密码修                        改。
            6.6.4.3:再将session中存储的当前用户的密码修改为新密码,重新存入                            session.

6.7:编辑个人信息
    6.7.1:先跳转到后台,根据用户名查询用户的所有信息,再跳转到编辑个人信息
页面,并将用户信息带到这个页面。
    6.7.2:创建编辑个人信息页面(form+table),并将用户的原始信息显示出来。
    6.7.3:点击修改跳转编辑个人信息Servlet中
    6.7.4:编辑个人信息Servlet中
            6.7.4.1:先接收用户提交的修改信息。
            6.7.4.2:根据用户名遍历用户集合找到要修改的用户对象,修改用户对象的信息。跳转到用户的首页并提示修改成功。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值