第5章 会话及其会话技术.docx

上传人:b****1 文档编号:270938 上传时间:2022-10-08 格式:DOCX 页数:13 大小:440.36KB
下载 相关 举报
第5章 会话及其会话技术.docx_第1页
第1页 / 共13页
第5章 会话及其会话技术.docx_第2页
第2页 / 共13页
第5章 会话及其会话技术.docx_第3页
第3页 / 共13页
第5章 会话及其会话技术.docx_第4页
第4页 / 共13页
第5章 会话及其会话技术.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

第5章 会话及其会话技术.docx

《第5章 会话及其会话技术.docx》由会员分享,可在线阅读,更多相关《第5章 会话及其会话技术.docx(13页珍藏版)》请在冰豆网上搜索。

第5章 会话及其会话技术.docx

第5章补充案例

案例5-1Cookie对象和常用API介绍一、案例描述

1、考核知识点

名称:

Cookie对象和常用API介绍编号:

028005002

2、练习目标

掌握Cookie对象和常用API的运用。

3、需求分析

现状电商网站发展迅速,在网站浏览的客户,包括非注册用户较多,时常浏览各种商品信息,在用户关闭浏览器,下次再进行访问的时候,有些网站会记住该浏览器用户上次的访问查看记录,这是一种非常便捷友好的设计。

本案例就模拟演示展示用户上次浏览商品记录信息。

4、设计思路(实现原理)

1)创建Demo1类继承Httpservlet类,

2)在Demo1中获取所有的cookie并遍历,查看是否有上次存储的浏览商品记录信息,然后进行相关处理

3)在web.xml中配置初始化参数和类的映射

4)通过浏览器访问Demo1,查看页面效果。

二、案例实现

publicclassDemo1extendsHttpServlet{

protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{

resp.setContentType("text/html;charset=utf-8");PrintWriterout=resp.getWriter();

//查询所有cookie信息

Cookie[]cookies=req.getCookies();if(cookies!

=null){

for(inti=0;i

out.println("您上次浏览商品为:

"+cookies[i].getValue());break;

}

编写Demo1,其代码如下:

1

}

}else{

out.println("Nocookie.");

Cookiecookie=newCookie("product","IPhone7");cookie.setMaxAge(60*60);

resp.addCookie(cookie);

}

}

protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{

doGet(req,resp);

}

}

配置web.xml文件:

Demo1

cn.itheima.Demo1

Demo1

/Demo1

启动Tomcat服务器,在地址栏中输入http:

//localhost:

8080/chapter05/Demo1,首次访问浏览器显示的结果如下图所示:

在浏览器上新打开一个页面,再次访问http:

//localhost:

8080/chapter05/Demo1,浏览器显示的结果如下图所示:

三、案例总结

1、可以通过request对象获取cookie信息,并且通过cookie对象常用API进行相关操作。

2、本案例中使用cookie记录了第一次访问信息并存储在浏览器写数据,第二次再次访问就获取到了上次浏览的记录信息。

1

案例5-2Session对象和常用API介绍

一、案例描述

1、考核知识点

名称:

Session对象和常用API介绍编号:

028005004

2、练习目标

掌握Session对象和常用API的运用。

3、需求分析

在实际运用中的表单信息提交的时候,可能会由于网络原因导致提交页面刷新缓慢,有些用户就会重复提交表单,就会产生重复数据和请求。

本案例就模拟演示在servlet中如何使用session对象控制表单重复提交。

4、设计思路(实现原理)

1)创建Demo2类,用户返回表单,同时生成唯一的随机token,

2)创建Demo2类,Demo2类中获取提交的表单信息,同时验证token来验证用户是否重复提交,

3)在web.xml中配置初始化参数和类的映射

4)通过浏览器访问Demo2,查看页面效果。

二、案例实现

publicclassDemo2extendsHttpServlet{

protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{

resp.setContentType("text/html;charset=utf-8");PrintWriterout=resp.getWriter();

Stringtoken=(newDate()).getTime()+"";//获得当前时间随机数req.getSession().setAttribute("token",token);//在服务器端保存随机数

//产生表单

out.println("");out.println("

"'/>");//通过隐藏字段带一个随机数给服务器

out.println("用户名:

");out.println("");

out.println("

");

}

protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{

doGet(req,resp);

}

编写Demo2,其代码如下:

1

}

编写Demo3,其代码如下:

publicclassDemo3extendsHttpServlet{

protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{

resp.setContentType("text/html;charset=utf-8");PrintWriterout=resp.getWriter();

try{

Thread.sleep(2000);//模拟服务器处理数据时间

}catch(InterruptedExceptione){e.printStackTrace();

}

booleanb=isToken(req);//if(b==false){

out.write("请不要重复提交!

");return;

}

//处理提交请求之前,需要先将session中保存的随机数移除掉

req.getSession().removeAttribute("token");

out.write("处理用户提交请求成功!

");

}

protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{

doGet(req,resp);

}

privatebooleanisToken(HttpServletRequestrequest){

StringclientToken=request.getParameter("token");//客户端tokenif(clientToken==null)

returnfalse;

String serverToken =

(String)request.getSession().getAttribute("token");//服务器端token

if(serverToken==null)//如果已经提交过一次了,服务器会把随机数移除掉,

serverToken就变成null了

returnfalse;if(!

clientToken.equals(serverToken))

returnfalse;returntrue;

}

}

Demo2

cn.itheima.Demo2

配置web.xml文件:

Demo2

/Demo2

Demo3

cn.itheima.Demo3

Demo3

/Demo3

启动Tomcat服务器,在地址栏中输入http:

//localhost:

8080/chapter05/Demo2,访问浏览器显示的结果如下图所示:

在输入框随机输入用户名,如”zhangsan”,连续2次点击提交按钮,浏览器显示的结果如下图所示:

再在浏览器上新打开一个页面,再次在地址栏中输入http:

//localhost:

8080/chapter05/Demo2,在浏览器输入框输入用户名,后再次点击一次提交按钮,短暂延迟后浏览器显示的结果如下所示:

三、案例总结

可以通过Session对象和常用API来记录用户提交表单信息,将两次提交进行对比,在后台控制表单提交。

1

案例5-3Session的超时管理

一、案例描述

1、考核知识点

名称:

Session的超时管理编号:

028005005

2、练习目标

掌握

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1