




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6讲,基于Servlet的会话跟踪1练习,回顾,request、response对象有哪些常用方法?web.xml文件的作用?如何理解Servlet的生命周期?实现页面跳转有几种方式?它们之间有哪些区别?如何理解HTTP协议?,request常用方法,getParameter()getParameterValues()getRequestDispatcher()setCharacterEncoding()setAttribute()getAttribute(),response常用的方法sendRedirect(url)setContentType(text/html;charset=gbk);,本讲问题,如何理解会话(session)?使用什么方法来获得HttpSession对象?,本讲任务,升级E-Book电子书店系统实现显示书籍列表点击书籍后显示书籍详细信息,理解会话跟踪原理会获取session对象会使用session对象进行数据存取,本讲目标,HTTP协议,1、HTTP协议有什么特点?无状态,访问,访问,我刚刚被访问了两次,但是我不知道,是一个人访问了两次?还是两个人各访问一次,HTTP协议不记录用户的信息,2、什么是无状态?,HTTP是无状态协议(3-1),3、如何显示张三和李四分别访问某一网页多少次?,请求,请求,响应,响应,张三,李四,为了区分用户,需要为不同用户作登记,HTTP是无状态协议(3-2),购买2个商品,张三,李四,4、在线购物系统中如何对用户进行区分?,购买3个商品,一共购买了5个商品,钱应该从谁的帐户上扣呢?,HTTP是无状态协议(3-3),Web程序能不能像银行卡号那样,根据卡号锁定一个用户呢?,请求,响应,响应的时候,由服务器给我分配一个唯一ID号,这样就能区别不同的用户了,再次请求的时候,我带着ID号,告诉服务器“我是谁”,如何标识用户?,会话跟踪(2-1),HttpSession对象服务器为每个会话创建一个HttpSession对象每个会话对象都有一个唯一的ID把用户的数据保存在相应的HttpSession对象内,第一次请求,响应,服务器创建一个HttpSession对象并把该对象的ID返回给用户,同时,服务器在内存中开辟一空间,用来保存该对象数据,把ID发送给客户端,第二次请求把ID一起发送给服务器,根据ID号服务器寻找内存中相应的数据,会话跟踪(2-2),请求1,请求2,请求n,.,什么是会话当前浏览器与服务器间多次的请求、响应关系,被称作一个会话,使用会话的事例,publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOExceptionHttpSessionsession=request.getSession(true);Objectcount=session.getAttribute(COUNTER);intcounter=0;if(count=null)counter=1;/将第一次计数存入sessionsession.setAttribute(COUNTER,newInteger(1);elsecounter=(Integer)count).intValue();counter+;/计数加一/将计数存入sessionsession.setAttribute(COUNTER,newInteger(counter);,取出session对象内存储的值,把数据存储在session对象内,记录不同用户的访问次数,演示示例1:网页计算Counter.java,获得session对象,会话的创建和使用,publicHttpSessiongetSession();publicHttpSessiongetSession(booleanvalue);,会话的创建使用HttpServletRequest的getSession()方法创建会话,语法如下:,会话的使用使用HttpSession接口的方法,进行保存数据:取出数据:,publicvoidsetAttribute(Stringparam,Objectvalue);publicObjectgetAttribute(Stringparam);,获取session对象的方法,getSession(),getSession(booleanbool),getSession(true),true,false,返回与当前关联的会话,如果没有就创建后将其返回,返回与当前关联的会话,如果没有返回null,使用时,将其转换成原来数据类型,session对象的存在周期,session对象的存在周期session的创建浏览器访问服务器时,服务器为每个浏览器创建不同的session对象session的关闭调用session.invalidate()方法,使session对象失效访问时间间隔大于非活动时间间隔,session对象失效关闭浏览器时,session对象失效,请求,在内存开辟空间保存数据信息,清空内存内当前浏览器相关数据信息,现场编程,在登录页面用户已录入用户名,现在编写一个Servlet接收该数据,并把用户名值保存在HttpSession对象内,publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOExceptionStringuserName=request.getParameter(userName);HttpSessionsession=request.getSession();if(userName!=null.,实现电子书店的购物车,需求描述,查看所有商品,选择商品放入购物车,继续购物,结账,满载而归,电子书店演示,显示所有书籍的列表点击某本书,显示书籍的详细信息添加当前书籍到购物车,电子书店的数据库设计,数据库设计数据库名:books数据库表:titles,电子书店的实体对象设计,对象的设计-书属性方法(getter、setter方法-为了得到和设置属性值),实体类,书籍类-BookBean.java,importjava.io.Serializable;publicclassBookBeanimplementsSerializableprivateStringISBN;/ISBN编号privateStringtitle;/书名privateStringcopyright;/版权privateStringimageFile;/封面图像privateinteditionNumber;/版本privateintpublisherID;/出版商IDprivatedoubleprice;/价格publicvoidsetISBN(Stringisbn)/设定ISBN编号ISBN=isbn;publicStringgetISBN()/返回ISBN编号returnISBN;,使用get方法,获得属性值,BookBean类的私有属性,标识该类可序列化,使用set方法,设置属性值,电子书店的购物车设计,购物车的设计-书籍清单书籍名称购买数量书籍价格小计总计,数据库连接类,数据库连接类:ConnectionManager.java,publicclassConnectionManager/打开数据库连接publicstaticConnectiongetConnction()ConnectiondbConnection=null;tryClass.forName(driver);dbConnection=DriverManager.getConnection(url,user,pass);catch(Exceptione)e.printStackTrace();returndbConnection;/关闭数据库连接,打开数据库连接,与JSP相同,演示示例2:数据库连接类ConnectionManager.java,数据库访问类,TitlesBean.java,publicListgetTitles()ListtitlesList=newArrayList();tryconnection=ConnectionManager.getConnction();titlesQuery=connection.prepareStatement(select*formtitles);ResultSetresults=titlesQuery.executeQuery();while(results.next()BookBeanbook=newBookBean();book.setISBN(results.getString(isbn);./设置其他的属性值titlesList.add(book);catch(Exceptionexception)exception.printStackTrace();returntitlesList;,返回数据列表,演示示例3:数据库访问类TitlesBean.java,读取行数据,并存入List中,显示所有书籍信息的页面,显示所有商品列表-books.jsp,调用方法,得到数据列表,把数据列表存入到sessi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版高科技环保型泥土运输合作协议
- 诸城消防知识培训基地课件
- 2025的企业资产抵押合同
- 2025【合同范本】租房合同范本下载
- 语言文字知识培训会课件
- 语文业务知识培训心得
- 六年级观后感隐形的翅膀观后感71200字13篇
- 怎么写端午节作文150字(14篇)
- 诗经氓课件教学课件
- 互联网软件定制开发服务合同书
- 2025-2026人教版(PEP)一年级上册英语教学计划 (三篇)
- 安徽省建筑工程质量验收监督综合表
- 应届毕业生培训方案课件
- 2023柔性棚洞防护结构技术规程
- 浙江工业大学学生综合测评分细则
- 英语初高中衔接音标
- 第十四章滚动轴承相关设计
- 第1章 数据与统计学-统计学
- GB/T 2059-2000铜及铜合金带材
- 设备维护保养手册
- ZYHZYHC系列自控远红外电焊条烘干炉使用说明书
评论
0/150
提交评论