EasyDemo*状态管理-Session简介

一、状态管理-Session

         1. 状态管理-Session

1.1 Session

1.1.1什么是Session(会话)

*浏览器访问Web服务器时,服务器会为每一个浏览器在服务器的内存中分配空间,单独创建一个Session对象,该对象有一个Id属性,其值唯一,一般称之为SessionId,并且服务器会将这个SessionId(使用Cookie的方式)发送给浏览器;浏览器再次访问服务器时,会将SessionId发送给服务器,服务器可以依据SessionId找到对应的Session对象

1.1.2Session工作原理

1.1.3如何获得Session

*HttpSession  s = request.getSession(Boolean flag);

*当flag=true:先查看请求中有没有SessionId,如果没有,服务器创建一个Session对象;如果有,依据SessionId查找对应Session对象,找到则返回,找不到则创建一个新的Session对象,所以flag=true时,一定能够得到一个Session对象

*当flag=false:如果SessionId及有SessionId但没有找到Session对象,均返回null;找到则返回

*HttpSession s = request.getSession();

*等价于request.getSession(true);

*提供该方法是为了代码书写更方便一些,大部分情况下是不管找没找到都需要返回一个Session对象

1.1.4如何使用Session绑定对象

1.1.5如何删除Session对象

*立即删除Session对象:

-Session.invalidate()

1.1.6Session验证

*用户访问需要保护的资源时,可使用Session验证的方式来保证其安全性,比如要求登录后才能访问的资源

*实现Session验证,遵循以下步骤

-1、使用Session.setAttribute()先绑定数据

-2、使用Session.getAttribute()方式来读取绑定值,如果没有,则跳转回登录页面

1.2 Session超时

1.1.1什么是Session超时

*Web服务器会将空闲时间过长的Session对象删除掉,以节省服务器内存空间资源

*web服务器缺省的超时时间限制:一般是30分钟

1.1.2如何修改Session的缺省时间限制

*通过修改tomcat中conf/web.xml文件的设置

*通过编程的方式来修改

1.1.3浏览器禁用Cookie的后果

*如果浏览器禁用Cookie,Session还能用?

 答:不能,但有其他的解决方案

*服务器在默认情况下,会使用Cookie的方式将SessionId发送给浏览器,如果用户禁止Cookie,则SessionId不会被浏览器保存,此时,服务器可以使用如URL重写这样的方式来发送SessionId

1.1.4什么是URL重写?

*浏览器在访问服务器上的某个地址时,不再使用原来的那个地址,而是使用经过改写的地址(即,在原来的地址后面加上了SessionId)

1.1.5如何实现URL重写?

*如果是链接地址和表单提交,使用response.encodeURL(String url)生成重写后的URL

*如果是重定向,使用 response.encodeRedirectURL(String url)生成重写后的URL

1.1.6 Session的优缺点

*优点

-安全(将状态保存在服务器端)

-Session能够保存的数据类型更丰富,Cookie只能保存字符串

-Session能够保存更多的数据,Cookie大约保存4k

*缺点

-Session将状态保存在服务器端,占用服务器的内存,如果用户量过大,会严重影响服务器的性能

1.3验证码

1.1.1 验证码的作用

*为了防止机器人的破坏性操作,可使用验证码技术来防止恶意的发送数据

*验证码本质上是一张动态产生的图片

*图片的内容会随着程勋的运行而随机生成

1.1.2验证码的绘制

*验证码图片的生成需要使用java提供的与绘图有关的一系列API

*要想绘图,需画板,画笔,颜料,背景色,字体等多种类对象配合完成

1.1.3验证码图片的绘制步骤

1.1.4验证码的验证流程

*请求带有验证码的页面时:

-通过img标签的src属性获取验证码图片

-服务器端生成随机字符串,并绘制

-服务器端将生成的随机字符串绑定到session中

*提交表单及填写的验证码内容时:

-处理程序将session中绑定的正确的验证码字符串取出来

-获取表单提交时填写的验证码内容

-比较两者,根据结果做出判断

 

 

猜你喜欢

转载自blog.csdn.net/qq_36287601/article/details/81697600
今日推荐