Web前后端数据交互技术 课件 第五章 网络通行证- 会话机制_第1页
Web前后端数据交互技术 课件 第五章 网络通行证- 会话机制_第2页
Web前后端数据交互技术 课件 第五章 网络通行证- 会话机制_第3页
Web前后端数据交互技术 课件 第五章 网络通行证- 会话机制_第4页
Web前后端数据交互技术 课件 第五章 网络通行证- 会话机制_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

——江西应用技术职业学院web前后端数据交互技术网络通行证——会话机制第五章教学内容1、会话机制定义2、Cookie简介3、Cookie操作4、Session简介5、Session操作知识目标技能目标素养目标●掌握会话机制的定义●掌握Cookie的工作原理和基本操作●掌握Session的工作原理和基本操作●培养信息素养,提升分析问题、团队协作的能力●养成web开发职业编码规范●培养认真仔细的职业工匠精神●能正确创建、获取和删除Cookie和Session●能使用Cookie和Session记录用户活动教学重点Cookie和Session的工作原理、Cookie和Session的基本操作和应用教学难点Cookie和Session的基本操作和应用教学内容教学目标一起进入课程学习吧!——江西应用技术职业学院——江西应用技术职业学院web前后端数据交互技术网络通行证——会话机制5.1目录CONTENTSSession概述Cookie的操作应用Cookie概述123Session操作应用4会话机制Cookie的诞生、生命周期Session简介、生命周期用户和服务器通常是使用HTTP进行通信,但是HTTP本身是无状态的(每一次请求相互独立)。服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现。因此,作为传输载体的HTTP添加了会话机制,即Cookie和Session。Cookie通过客户端记录确定用户身份,通常应用于保存浏览历史、保存购物车商品和保存用户登录状态等场景。Session在客户端和服务段之间保持状态,通过服务器记录信息确定用户身份。通常用于保存用户登录状态、保存生成的验证码等。会话技术拨电话通话通话挂断电话在日常生活中,从拨通电话到挂断电话之间的一连串你问我答的过程就是一个会话。跟踪和记录双方通话内容的机制就是会话技术。你好!接通挂断会话技术首先,看一下现实生活中的例子你好!01什么是Cookie?Cookie概述商场根据会员卡上的消费记录计算会员的优惠额度和累加积分。作用购物结账Cookie概述作用购物结账Cookie概述在Web应用中,Cookie的功能类似于这张会员卡。1、1994NetscapeCommunication公司员工创建。2、初衷:网上商店运营不想存储用户购物信息。信息存储客户端可以减少服务器工作量,经济实惠。3、1994Netscape浏览器实现了Cookie,被关注的同时也引发人们对其信息安全性的质疑。4、HTTP无状态性让Cookie发挥了最庸,比如用户登陆验证、信息返回都用到Cookie。随着服务器响应内容一起发送至客户端存储。作用:记住你的身份,保持登陆状态,存储用户基本设置。限制:Cookie数量、数据大小、不同网站之间无法互相访问Cookie。Cookie的诞生Web服务器客户端1.HTTP请求2.PHP调用3.Set-Cookie:City=Beijing用户a.phpb.phpCookie的生命周期Cookie在浏览器和服务器之间的传输过程3.Set-Cookie:City=Beijing服务器向客户端发送Cookie时,会在HTTP响应头中增加Set-Cookie响应头字段。Set-Cookie头字段中设置的Cookie遵循一定的语法格式,具体示例如下:Set-Cookie:City=Beijing;Path=/;City表示Cookie的名称Beijing表示Cookie的值Path表示Cookie的属性Cookie必须以键值对的形式存在,其属性可以有多个,但这些属性之间必须用分号(;)和空格分隔。Cookie的生命周期Cookie在浏览器和服务器之间的传输过程1.HTTP请求2.PHP调用3.Set-Cookie:City=Beijing5.Set-Cookie4.Set-Cookie:City=Beijing6.cookie:City=Beijing7.cookie:City=Beijing用户客户端Web服务器a.phpb.phpCity=Beijing浏览器缓存Cookie的生命周期Cookie在浏览器和服务器之间的传输过程综上可知当用户第一次访问服务器时,服务器会在响应消息中增加Set-Cookie头字段,将信息以Cookie的形式发送给浏览器,一旦用户接收了服务器发送的Cookie信息,就会将它保存到浏览器的缓冲区中,这样,当浏览器后续访问该服务器时,都会将信息以Cookie的形式发送给服务器,从而使服务器分辨出当前请求是由哪个用户发出的。Cookie的生命周期谢谢大家观看——江西应用技术职业学院——江西应用技术职业学院web前后端数据交互技术网络通行证——会话机制5.2.1目录CONTENTSSession概述Cookie的操作应用Cookie概述123Session操作应用4会话机制Cookie的诞生、生命周期Session简介、生命周期02Cookie的创建、获取与删除Cookie的操作应用

接下来我们将要学习如何来使用这神奇的Cookie。任务描述在使用Cookie之前,首先得创建Cookie。setCookie()在PHP中通过setcookie()函数创建Cookie,其声明方式如下所示:boolsetcookie(string$name[,string$value[,int$expire=0[,string$path[,string$domain[,bool$secure]]]]])参数$name是必需的,表示Cookie的名称使用“[]”括起来的参数是可选的$value用于表示Cookie的值$expire用于表示Cookie的有效期$path用于表示Cookie在服务器端的有效路径$domain用于表示Cookie的有效域名$secure用于指定Cookie是否通过安全的HTTPS连接来传输。拓展:使用setcookie()函数还可以创建Cookie数组,只需要在参数name后面加上数组标识符即可,例如location[1]。Cookie创建为了帮助大家更好地理解setcookie()函数的使用,接下来,通过一个案例来演示如何使用setcookie()函数创建Cookie。由于Cookie是HTTP请求消息头的一部分,因此setcookie()函数必须在其他信息被输出到浏览器前调用,否则会导致程序出错。一个浏览器或一个域名下最多可以存放cookie的数量以及每个cookie的大小都与浏览器的版本相关。setCookie()Cookie创建谢谢大家观看——江西应用技术职业学院——江西应用技术职业学院web前后端数据交互技术网络通行证——会话机制5.2.2目录CONTENTSSession概述Cookie的操作应用Cookie概述123Session操作应用4会话机制Cookie的诞生、生命周期Session简介、生命周期02Cookie的创建、获取与删除Cookie的操作应用接下来继续学习如何来使用这神奇的Cookie。任务描述如何获得Cookie的值呢?在PHP中,可以使用超全局数组$_COOKIE[]来读取,具体示例如下:$val=$_COOKIE['key'];$val表示一个变量,用于存储从Cookie中获取的数据。key是一个字符串。为了帮助大家更好地掌握Cookie的读取,接下来,通过一个案例来演示如何使用超全局数组$_COOKIE[]读取Cookie中的信息。Cookie获取Cookie如何删除Cookie呢?Cookie删除若未设置cookie的有效期,则关闭浏览器时cookie会被自动删除。若要删除cookie,则将setcookie()函数中的参数$value设置为空即可。若要删除cookie,则将setcookie()函数中的参数$expire设置为小于系统的当前时间即可。删除方式一方式二方式三Cookie删除谢谢大家观看——江西应用技术职业学院——江西应用技术职业学院web前后端数据交互技术Session的生命周期5.401Session的生命周期5.4

Session的生命周期和应用Session的生命周期

Session存储在服务器的内存中(为了高速存取)。Session何时生效Sessinon在用户访问第一次访问服务器时创建,需要注意只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session,可调用request.getSession(true)强制生成Session。

Session何时失效1.服务器会把长时间没有活动的Session从服务器内存中清除,此时Session便失效。Tomcat中Session的默认失效时间为20分钟。2.调用Session的invalidate方法。Session的生命周期HttpSessionsession=request.getSession();session.invalidate();//注销该request的所有session3.session的过期时间是从什么时候开始计算的?是从一登录就开始计算还是说从停止活动开始计算?答:从session不活动的时候开始计算,如果session一直活动,session就总不会过期。从该Session未被访问,开始计时;一旦Session被访问,计时清0;4.设置session的失效时间Session的生命周期a)web.xml中<session-config><session-timeout>30</session-timeout></session-config>b)在程序中手动设置session.setMaxInactiveInterval(30*60);//设置单位为秒,设置为-1永不过期request.getSession().setMaxInactiveInterval(-1);//永不过期c)tomcat也可以修改session过期时间,在server.xml中定义context时采用如下定义:

<Contextpath="/livsorder"docBase="/home/httpd/html/livsorder"

defaultSessionTimeOut="3600"isWARExpanded="true"

isWARValidated="false"isInvokerEnabled="true"

isWorkDirPersistent="false"/>谢谢大家观看——江西应用技术职业学院——江西应用技术职业学院web前后端数据交互技术Session的生命周期5.4.102Session的应用(一)5.4

Session的生命周期和应用Session的应用一

1、获取Httpsession

HttpSessionsession=request.getSession();2、设置session的存放内容session.setAttribute("name","张三");3、设置当前session的有效期,该方法设置的时间单位为秒session.setMaxInactiveInterval(30);4、在另一个请求中获取服务器端session存放的内容,以jsp页面访问的形式为例

<%

Stringstr=(String)request.getSession().getAttribute("name");

%>

<%=str%>

5、在session有效期内页面获取的数据

6、session有效期失效后页面获取的数据

Session的应用一谢谢大家观看——江西应用技术职业学院——江西应用技术职业学院web前后端数据交互技术Session的生命周期5.4.203Session的应用(二)5.4

Session的生命周期和应用Session的应用二​页面访问量统计实例

//获取session创建时间

DatecreateTime=newDate(session.getCreationTime());

//获取最后访问页面的时间

DatelastAccessTime=newDate(session.getLastAccessedTime());

Stringtitle="再次访问当前页面";

IntegervisitCount=newInteger(0);

StringvisitCountKey=newString("visitCount");

StringuserIDKey=newString("userID");

StringuserID=newString("你好");​

//检测网页是否有新的访问用户

if(session.isNew()){

title="访问当前页面";

session.setAttribute(userIDKey,userID);

session.setAttribute(visitCountKey,

visitCount);

}else{

visitCount=(Integer)session.getAttribute(visitCountKey);

visitCount+=1;

userID=(String)session.getAttribute(userIDKey);

session.setAttribute(visitCountKey,

visitCount);

}Session的应用二第一次访问页面第二次访问页面Session的应用二谢谢大家观看——江西应用技术职业学院——江西应用技术职业学院web前后端数据交互技术Session的生命周期5.4.304Session的应用(三)5.4

Session的生命周期和应用Session的应用三​简单购物车功能实现

1、商场页面代码

<imgclass="cla"src="furit.jpg">水果<ahref="/stu/Car?id=1">加入购物车</a><imgclass="cla"src="tv.jpg">电视<ahref="/stu/Car?id=2">加入购物车</a><imgclass="cla"src="computer.jpg">电脑<ahref="/stu/Car?id=3">加入购物车</a><br><imgclass="cla"src="bingxiang.jpg">冰箱<ahref="/stu/Car?id=4">加入购物车</a><imgclass="cla"src="colth.jpg">衣服<ahref="/stu/Car?id=5">加入购物车</a><imgclass="cla"src="phone.jpg">手机<ahref="/stu/Car?id=6">加入购物车</a>Session的应用三​2、添加成功结算<h3><ahref="/stu/session3.jsp">继续购物</a><ahref="/stu/over.jsp">结算</a></h3>3、购物车商品信息<h4>商品信息</h4><%@SuppressWarnings("unchecked")Map<String,Integer>car=(Map<String,Integer>)request.getSession().getAttribute("car");if(car!=null){Set<String>names=car.keySet();Session的应用三for(Stringname:names){%><h3>商品名字:<%=name%>数量:<%=car.get(name)%></h3><%}}else{%><h3>购物车为空<ahref="/stu/session3.jsp">继续购物</a></h3><%}%><h3><ahref="/stu/session3.jsp">继续购物</a></h3>Session的应用三

4、后台逻辑处理

//获取点击购物那个商品的ID(String),每次只是点击一个,所以ID就是一个数可以转为intStringid=request.getParameter("id");String[]names=newString[]{"水果","电视",

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论