第5章 会话及其会话技术Word文件下载.docx
- 文档编号:13200903
- 上传时间:2022-10-08
- 格式:DOCX
- 页数:13
- 大小:440.36KB
第5章 会话及其会话技术Word文件下载.docx
《第5章 会话及其会话技术Word文件下载.docx》由会员分享,可在线阅读,更多相关《第5章 会话及其会话技术Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
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<
cookies.length;
i++){Stringname=cookies[i].getName();
if(name.equals("
product"
)){
out.println("
您上次浏览商品为:
"
+cookies[i].getValue());
break;
}
编写Demo1,其代码如下:
1
}else{
Nocookie."
Cookiecookie=newCookie("
"
IPhone7"
cookie.setMaxAge(60*60);
resp.addCookie(cookie);
protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{
doGet(req,resp);
配置web.xml文件:
<
servlet>
servlet-name>
Demo1<
/servlet-name>
servlet-class>
cn.itheima.Demo1<
/servlet-class>
/servlet>
servlet-mapping>
url-pattern>
/Demo1<
/url-pattern>
/servlet-mapping>
启动Tomcat服务器,在地址栏中输入http:
//localhost:
8080/chapter05/Demo1,首次访问浏览器显示的结果如下图所示:
在浏览器上新打开一个页面,再次访问http:
8080/chapter05/Demo1,浏览器显示的结果如下图所示:
三、案例总结
1、可以通过request对象获取cookie信息,并且通过cookie对象常用API进行相关操作。
2、本案例中使用cookie记录了第一次访问信息并存储在浏览器写数据,第二次再次访问就获取到了上次浏览的记录信息。
案例5-2Session对象和常用API介绍
一、案例描述
Session对象和常用API介绍编号:
028005004
掌握Session对象和常用API的运用。
在实际运用中的表单信息提交的时候,可能会由于网络原因导致提交页面刷新缓慢,有些用户就会重复提交表单,就会产生重复数据和请求。
本案例就模拟演示在servlet中如何使用session对象控制表单重复提交。
1)创建Demo2类,用户返回表单,同时生成唯一的随机token,
2)创建Demo2类,Demo2类中获取提交的表单信息,同时验证token来验证用户是否重复提交,
4)通过浏览器访问Demo2,查看页面效果。
publicclassDemo2extendsHttpServlet{
Stringtoken=(newDate()).getTime()+"
;
//获得当前时间随机数req.getSession().setAttribute("
token"
token);
//在服务器端保存随机数
//产生表单
formaction='
/chapter05/Demo3'
method='
post'
>
out.println("
inputtype='
hidden'
name='
token'
value='
+token+
'
/>
//通过隐藏字段带一个随机数给服务器
用户名:
text'
username'
submit'
提交'
/form>
编写Demo2,其代码如下:
编写Demo3,其代码如下:
publicclassDemo3extendsHttpServlet{
try{
Thread.sleep(2000);
//模拟服务器处理数据时间
}catch(InterruptedExceptione){e.printStackTrace();
booleanb=isToken(req);
//if(b==false){
out.write("
请不要重复提交!
return;
//处理提交请求之前,需要先将session中保存的随机数移除掉
req.getSession().removeAttribute("
处理用户提交请求成功!
privatebooleanisToken(HttpServletRequestrequest){
StringclientToken=request.getParameter("
//客户端tokenif(clientToken==null)
returnfalse;
String serverToken =
(String)request.getSession().getAttribute("
//服务器端token
if(serverToken==null)//如果已经提交过一次了,服务器会把随机数移除掉,
serverToken就变成null了
if(!
clientToken.equals(serverToken))
returntrue;
Demo2<
cn.itheima.Demo2<
/Demo2<
Demo3<
cn.itheima.Demo3<
/Demo3<
8080/chapter05/Demo2,访问浏览器显示的结果如下图所示:
在输入框随机输入用户名,如”zhangsan”,连续2次点击提交按钮,浏览器显示的结果如下图所示:
再在浏览器上新打开一个页面,再次在地址栏中输入http:
8080/chapter05/Demo2,在浏览器输入框输入用户名,后再次点击一次提交按钮,短暂延迟后浏览器显示的结果如下所示:
可以通过Session对象和常用API来记录用户提交表单信息,将两次提交进行对比,在后台控制表单提交。
案例5-3Session的超时管理
Session的超时管理编号:
028005005
掌握
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 会话及其会话技术 会话 及其 技术