JavaWeb编程(四)session及application的使用
1.会话:客户端向服务端发送请求,服务端接受请求并响应这样一次连续的过程,称为一个会话(session)。
2.可实现登录访问控制功能:
login.jsp
doLogin.jsp
index.jsp
1).进入登录页面login.jsp,输入用户名,密码后跳转到业务处理页面doLogin.jsp;
2).在doLogin.jsp拿到用户录入的用户名密码校验后,把用户名放到session中,转到主界面index.jsp;
3).接下来再去访问主界面或其它页面时,先从session中获取用户名,若能得到则说明已经登录可以做其它操作,否则转到登录页面继续第1步操作。
3.会话:在整个会话期间都是有效|从登录到退出|浏览器关闭|会话到期|会话销毁 会话就过期,一般用来实现登录控制。
说明:
a)当浏览器中把cookies设置为阻止,那么session将失效,可以通过url重写达到效果
<a href='<%=response.encodeURL("index.jsp")%>'>下载二</a>
b)会话实现机制(基于cookie实现的)
会话由谁创建的?
– 会话由容器创建的。
会话保存在哪里?
– 会话保存在容器中
由若干客户端与服务器连接,服务器会为每个客户端的一次会话创建一个会话对象,而这些会话对象都在容器中,如何区分会话对象与客户端的联系?
– 多数容器都采用cookie机制实现会话机制
结论:多数容器都使用cookie机制实现会话,也就是说使用cookie来保存客户端与服务器里会话对象之间的对应关系。
使用cookie实现会话机制的过程
1、当容器创建一个新的HttpSession对象后,即生成一个随机数,称为会话ID,并将ID值封装成一个名字为JSESSIONID的cookie,返回给客户端。
2、当使用jsp中的session会话对象时,容器先从request中获取JSESSIONID值,根据JSESSIONID值查找到对应的会话对象,返回使用。
3、如果没有获取到JSESSIONID值,认为当前的请求没有相关联的会话对象,重复步骤1。
4.Cookie与会话的区别
session是在服务器端保存用户信息,Cookie是在客户端保存用户信息
session中保存的是任意对象,Cookie保存的是字符串
session随会话结束而关闭,Cookie可以长期保存在客户端硬盘上,也可以临时保存在浏览器内存中
Cookie通常用于保存不重要的用户信息,重要的信息使用session保存
5.application:实现整个应用期间的数据共享。
6.内置对象范围
page(当前页面有效),request(一次请求),session(会话期间),application(整个应用期间),out(当前页面有效)-->pageContext产生的