项目6购物车-1会话对象.ppt

上传人:小飞机 文档编号:6613326 上传时间:2023-11-18 格式:PPT 页数:37 大小:1.95MB
返回 下载 相关 举报
项目6购物车-1会话对象.ppt_第1页
第1页 / 共37页
项目6购物车-1会话对象.ppt_第2页
第2页 / 共37页
项目6购物车-1会话对象.ppt_第3页
第3页 / 共37页
项目6购物车-1会话对象.ppt_第4页
第4页 / 共37页
项目6购物车-1会话对象.ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《项目6购物车-1会话对象.ppt》由会员分享,可在线阅读,更多相关《项目6购物车-1会话对象.ppt(37页珍藏版)》请在三一办公上搜索。

1、JAVA WEB应用开发,项目六 购物车(Session),工作任务,任务一 掌握会话对象任务1-1 了解JSP会话对象任务1-2 使用会话对象任务1-3 集合容器任务二 购物车业务类设计任务三 添加图书到购物车设计任务四 修改购物车图书数量,2,复习,DAO模型显示页面(表单)隐藏表单 传参数action实体类数据访问层接口 XXXDao数据访问操作类XXXDaoImp 实现接口一般有判断是否存在,增删改查,按某个条件查询,查看所有(List)控制层 Servlet获取表单参数中文处理创建实体对象并赋值创建数据访问对象并调用相应方法保存共享数据setAttributegetAttribute

2、页面转向response.sendRedirect(url);request.getRequestDispatcher(url).forward(request,response);,复习,JavaBeanJavaBean是公开的类构造方法,都是公有的,而且必须有一个空参它用一组get类型的公开函数提供外界来攫取内部的属性的值。若要改变Bean内部属性时,则是利用一组set类型的公开函数来作设定。如果属性是布尔类型,也可以用isXXX来获取值,set一样写JavaBean时,需要加上包名 在JSP中使用JavaBean创建对象 scope=“有效范围”设置对象的属性值 获取对象的属性值在Ser

3、vlet中使用JavaBean引入包、创建对象,调用get和set方法,复习,查询、显示与分页 JavaBean实体Bean数据访问Bean分页业务BeanJSP简单表单有数据显示(使用数据访问Bean)Servlet功能字符串创建业务对象路径设置根据功能进行操作页面转向,原来的方法:访问Servlet,访问数据访问业务方法,保存数据,页面转向(不好),获取页面数据并进行处理调用业务方法参数是对象,先创建对象,设置属性参数是字符串,直接调用如果是查询操作,构建不同查询条件的sql语句保存数据路径设置,项目目标,任务一:支撑知识理解会话跟踪机制掌握会话,会使用会话跟踪技术在JSP中使用HttpS

4、ession会话对象在Servlet中使用HttpSession会话对象主要作用:保存和获取数据会使用集合容器对象任务二:会编写购物车业务类并测试图书信息类JavaBean设计购物车业务类设计测试类任务三:添加图书到购物车显示页面购物车控制类购物车页面设计任务四:修改购物车图书数量购物车控制类,会话跟踪,什么是会话客户端打开与服务器的连接发出请求到服务器响应客户端请求的全过程称之为会话什么是会话跟踪对同一个用户对服务器的连续的请求和接受响应的监视为什么需要会话跟踪浏览器与服务器之间的通信是通过无状态的HTTP协议进行通信的不能保存客户的信息,即当客户端发出请求时,服务器建立连接,一旦请求响应结

5、束连接就断开,下一次的请求需要重新连接,服务器无法判断是否是同一个用户,会话跟踪技术,会话跟踪技术当用户在同一网站的多个页面之间转换时,根本无法知道是否是同一个客户,会话跟踪就可以解决这个问题。当一个客户在多个页面间切换时,服务器会保存该用户的信息。将客户状态维持在服务器上,维持客户状态的技术;用来跟踪用户的整个会话 可由以下四种方式来实现:使用CookieURL重写隐藏表单域使用会话对象会话数据可以保存在客户端或者保存在服务器端。Cookie和隐藏表单字段就是将会话数据保存在客户端。,URL重写 附加,URL(统一资源定位符)Web上特定页面的地址URL重写的技术在URL结尾添加一个附加数据

6、以标识该会话,把会话ID通过URL的信息传递过去,以便在服务器端进行识别不同的用户 http:/,Cookie-附加,Cookie“甜饼”Netscape 是一种由服务器发送给客户的片段信息,存储在客户端浏览器的内存或者硬盘上客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。查看 javascript:alert(document.co

7、okie),Cookie-附加,主要方法,Cookie的使用-附加,创建new Cookie(“名字”,”值”)名字和值都不能包含空白字符以及下列字符::;?,/()=将Cookie发送给浏览器response.addCookie(Cookie 对象名);读取Cookierequest.getCookies()返回的是数组不能请求某一个Cookie,只能读取所有的Cookie,然后遍历数组元素。,训练-使用Cookie-附加,创建一个Web应用-读取Cookie创建一个Cookie 在Cookie发送到客户端前,先要创建一个Cookie 发送Cookie调用response.addCookie

8、方法发送一个HTTP Header 读取Cookie 调用request.getCookies()读取到的是HTTP请求头中的内容对应的Cookie对象数组 循环遍历该数组的各个元素 调用getName方法检查各个Cookie的名字,直至找到目标Cookie然后对该Cookie调用getValue方法取得与指定名字关联的值,2023/11/18,13,隐藏表单-附加,利用表单内的Hidden属性Hidden元素并不会出现在客户端的浏览器中,但是它的值可以在提交表单时被发送到服务器;如:一般将重要的用户信息,如用户ID等之类的唯一数据,以隐藏字段的方式传给服务器要保证数据的准确采集,必须定义一个

9、独一无二的名称,隐藏表单-附加,表单被提交时,隐藏表单的名字和数据也被包含到Get或Post数据里,传给服务器 HttpServletResponse.getparameter(String s)使用可以用于提交表单的判断,用一个接收页面处理多个form表单的提交,服务器怎么判断你提交的是哪个呢?通过隐藏域 通过提交按钮的name和value 的比较 隐藏域也常常用于论坛的外部登陆窗口,训练-使用隐藏表单-附加,创建一个Web应用-隐藏表单的使用创建一个登陆页面html用于递交用户名和密码第二个页面什么都不做,第三个页面负责显示来自于第一个页面的用户名。3个页面,2次不同的请求,但是也可以实现

10、会话跟踪。创建一个HiddenServlet 在servlet中写一个页面隐藏来自第一个页面的用户名的值负责提交到第三个页面创建一个InfoServlet 显示显示来自于第一个页面的用户名3个页面,2次不同请求,但是也可以实现会话跟踪,2023/11/18,16,HttpSession会话跟踪,HttpSession会话跟踪技术Session是服务器端使用的一种记录客户端状态的机制,比Cookie简单,增加服务器的存储压力结合Cookie和URL重写技术HttpSession对象自动选择,无需关心细节当客户端运行使用Cookie,使用Cookie进行跟踪会话当客户端禁用Cookie,使用URL

11、重写,Cookie机制通过检查客户身上的“通行证”来确定客户身份的话,Session机制通过检查服务器上的“客户明细表”来确认客户身份。相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。,会话跟踪示意图,同一个HttpSession对象,Session对象的使用,Session对象类 代表服务器与浏览器的一次会话过程 是在客户端第一次请求服务器的时候创建的每个来访者对应一个Session对象,所有该客户的状态信息都保存在这个 Session对象里 属性 key-valueSession使用得到session对象HttpSession session=reque

12、st.getSession(boolean);/true存在返回,否则创建false,存在返回,否则不创建HttpSession session=request.getSession();/跟true相同保存状态信息 session.setAttribute(String name,Object value)读取状态信息session.getAttribute(String name)/一般需要类型转换,HttpSession的常用方法,HttpSession的其它方法,课堂训练1-HttpSession接口方法测试,创建一个Web应用-HttpSession接口方法测试在一个Servlet页

13、面中设置用户名、用户密码属性在另一个Servlet中取出用户名密码 注意sessionID值,Session小结,Session会话对象在Web项目中使用session,是为了跟踪用户状态,并区分不同的用户会话是Web容器创建的,而不是由程序员编码创建的,当客户端第一次访问的服务器的时候,服务器会为客户创建一个sessionHttpSession对象的使用创建HttpSession对象HttpSession session=request.getSession(true);使用HttpSession对象在创建HttpSession对象后,使用该对象进行数据的存储,以进行数据的传递:(1)voi

14、d set Attribute(String name,Object value);/进行数据的存储(2)Object getAttribute(String name);/进行数据的读取。HttpSession对象的结束在以下3种情况,可以结束session关闭浏览器,关闭session调用HttpSession的invalidate()方法,删除HttpSession对象和数据。两次访问时间间隔大于session定义的非活动时间间隔,Java 集合对象,用于存储对象,实现快速检索Hashtable Hashtable hashtable=new Hashtable();HashMap Ha

15、shMap map=new HashMap();区别HashMap可以代替HashTable建议使用HashMap,不要使用HashTable 遍历元素HashTable使用EnumerationHashMap使用Iterator,Hashtable,HashMap,课堂训练二-使用Hashtable和HashMap,测试Hashtable测试HashMap,购物车的顺序图,2023年11月18日,29,购物车模块,购物车模块流程的控制用户在浏览图书时可以添加图书到购物车中然后可以继续选购图书也可以修改图书数量或删除某一种图书也可以清空购物车如果确定选购可以到结算中结账。,任务二 购物车业务类

16、设计,图书信息类设计 Book 实体类JavaBean成员变量构造方法get、set购物车业务类设计 Cart业务类JavaBean成员变量-使用集合容器类HashTable或者HashMap 构造方法添加、删除、修改、返回购物车内容、显示购物车内容等方法设计判断有没有测试类设计,添加购物车的设计步骤,任务三 添加图书到购物车设计,图书显示 book.jsp商品列表的页面向购物车Servlet递交隐藏表单的运用购物车控制Servlet设计 CartServlet.java 获取功能参数 如果是add获取商品信息并进行中文处理创建实体类Book,并设置值获取当前购物车对象如果为空,创建购物车对象

17、,调用增加图书方法,使用Session保存新购物车对象否,调用增加图书方法,使用Session保存新购物车对象转向到显示页面购物车显示页面设计 cartMain.jsp 获取保存在Session中的数据遍历并显示,Session的使用,保存和获取数据,保存数据,获取数据,查询结果页面 jsp获取保存数据遍历集合容器遍历表单递交给购物车业务控制类表格显示 隐藏表单图片处理,查询控制类BookSearchControl获取功能参数如果是简单查询获取分类选项字符串获取查询内容字符串中文处理构建SQL语句查询所有的图书信息查询该分类下所有图书信息查询分类不是全部,并且查询图书内容不为空创建图书数据访问

18、层并调用方法保存数据页面转向,图书访问层BookDaoImp./查询图书public List getBookList(String sql),购物车业务控制类CartControl获取功能参数如果是添加是添加商品获取隐藏表单参数进行中文处理和数据类型转换创建图书类实体并设置属性获取session中购物车对象为空,第一次购物创建购物车对象添加商品保存数据不为空添加商品保存数据页面转向到购物车显示页面,购物车业务类Cart成员变量HashMap成员方法构造方法添加商品删除商品修改商品查询商品返回购物车中内容,购物车内容显示jsp获取session中数据遍历并显示修改(ID)删除(ID),任务四

19、修改购物车数量,修改购物车显示页面设计 cartMain.jsp 增加表单向CartServlet递交实现修改数量功能 传值 id 传值 表单 数量的文本框修改购物车控制Servlet CartServlet.java 获取功能参数 如果是update获取商品id获取图书数量创建实体类Book,并重新设置值获取当前购物车对象调用修改图书方法保存购物车新对象到Session中转向到显示页面,查询结果页面 jsp获取保存数据遍历集合容器遍历表单递交给购物车业务控制类表格显示 隐藏表单图片处理,查询控制类BookSearchControl获取功能参数如果是简单查询获取分类选项字符串获取查询内容字符串

20、中文处理构建SQL语句查询所有的图书信息查询该分类下所有图书信息查询分类不是全部,并且查询图书内容不为空创建图书数据访问层并调用方法保存数据页面转向,图书访问层BookDaoImp./查询图书public List getBookList(String sql),购物车业务控制类CartControl获取功能参数如果是修改数量获取表单参数 id和数量进行中文处理和数据类型转换创建图书类实体并设置属性获取购物车对象修改购物车中商品保存数据页面转向到购物车显示页面,购物车业务类Cart成员变量HashMap成员方法构造方法添加商品删除商品修改商品查询商品返回购物车中内容,购物车内容显示jsp获取s

21、ession中数据遍历并显示修改(ID)删除(ID),任务五 删除购物车商品,删除购物车显示页面设计 cartMain.jsp 删除某个商品的超链接(调用servlet)功能 传值 id 传值 删除购物车控制Servlet CartServlet.java 获取功能参数 如果是delete获取商品id创建实体类Book,并重新设置值Id获取当前购物车对象调用删除图书方法保存购物车新对象到Session中转向到显示页面,查询结果页面 jsp获取保存数据遍历集合容器遍历表单递交给购物车业务控制类表格显示 隐藏表单图片处理,查询控制类BookSearchControl获取功能参数如果是简单查询获取分

22、类选项字符串获取查询内容字符串中文处理构建SQL语句查询所有的图书信息查询该分类下所有图书信息查询分类不是全部,并且查询图书内容不为空创建图书数据访问层并调用方法保存数据页面转向,图书访问层BookDaoImp./查询图书public List getBookList(String sql),购物车业务控制类CartControl获取功能参数如果是删除商品获取表单参数 id进行数据类型转换创建图书类实体并设置属性获取购物车对象删除购物车中商品保存数据页面转向到购物车显示页面,购物车业务类Cart成员变量HashMap成员方法构造方法添加商品删除商品修改商品查询商品返回购物车中内容,购物车内容显示jsp获取session中数据遍历并显示修改(ID)删除(ID),

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号