




已阅读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,.,什么是会话 当前浏览器与服务器间多次的请求、响应关系,被称作一个会话,使用会话的事例,public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException HttpSession session = request.getSession(true); Object count = session.getAttribute(“COUNTER“); int counter = 0; if (count = null) counter = 1; /将第一次计数存入session session.setAttribute(“COUNTER“, new Integer(1); else counter = (Integer) count).intValue(); counter+;/计数加一 /将计数存入session session.setAttribute(“COUNTER“, new Integer(counter); ,取出session对 象内存储的值,把数据存储在 session对象内,记录不同用户的访问次数,演示示例1:网页计算Counter.java,获得session对象,会话的创建和使用,public HttpSession getSession(); public HttpSession getSession( boolean value);,会话的创建 使用HttpServletRequest 的 getSession() 方法创建会话, 语法如下:,会话的使用 使用HttpSession接口的方法,进行 保存数据: 取出数据:,public void setAttribute(String param,Object value); public Object getAttribute(String param);,获取session 对象的方法,getSession( ),getSession(boolean bool ),getSession( true ),true,false,返回与当前关联的 会话,如果没有就 创建后将其返回,返回与当前关联 的会话,如果没 有返回null,使用时,将其转换成原来数据类型,session对象的存在周期,session对象的存在周期 session的创建 浏览器访问服务器时,服务器为每个浏览器创建不同的session对象 session的关闭 调用session. invalidate()方法,使session对象失效 访问时间间隔大于非活动时间间隔, session对象失效 关闭浏览器时,session对象失效,请求,在内存开辟空间 保存数据信息,清空内存内当前浏 览器相关数据信息,现场编程,在登录页面用户已录入用户名,现 在编写一个Servlet接 收该数据,并把用户名值保存在HttpSession对象内, public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException String userName=request.getParameter(“userName“); HttpSession session=request.getSession(); if (userName!=null .,实现电子书店的购物车,需求描述,查看所有商品,选择商品 放入购物车,继续购物,结账,满载而归,电子书店演示,显示所有书籍的列表 点击某本书,显示书籍的详细信息 添加当前书籍到购物车,电子书店的数据库设计,数据库设计 数据库名:books 数据库表:titles,电子书店的实体对象设计,对象的设计-书 属性 方法(getter、setter方法-为了得到和设置属性值),实体类,书籍类-BookBean.java,import java.io.Serializable; public class BookBean implements Serializable private String ISBN; /ISBN编号 private String title; /书名 private String copyright; /版权 private String imageFile; /封面图像 private int editionNumber; /版本 private int publisherID; /出版商ID private double price; /价格 public void setISBN(String isbn) / 设定ISBN编号 ISBN = isbn; public String getISBN() / 返回ISBN编号 return ISBN; ,使用get方法,获得属性值,BookBean类的私有属性,标识该类可序列化,使用set方法,设置属性值,电子书店的购物车设计,购物车的设计-书籍清单 书籍名称 购买数量 书籍价格 小计 总计,数据库连接类,数据库连接类:ConnectionManager.java,public class ConnectionManager /打开数据库连接 public static Connection getConnction() Connection dbConnection = null; try Class.forName(“driver“); dbConnection = DriverManager .getConnection(“url“, “user“, “pass“); catch (Exception e) e.printStackTrace(); return dbConnection; /关闭数据库连接 ,打开数据库连接,与JSP相同,演示示例2:数据库连接类ConnectionManager.java,数据库访问类,TitlesBean.java,public List getTitles() List titlesList = new ArrayList(); try connection = ConnectionManager.getConnction(); titlesQuery = connection .prepareStatement(“select* form titles“); ResultSet results = titlesQuery.executeQuery(); while (results.next() BookBean book = new BookBean(); book.setISBN(results.getString(“isbn“); . /设置其他的属性值 titlesList.add(book); catch (Exception exception) exception.printStackTrace(); return titlesList; ,返回数据列表,演示示例3:数据库访问类TitlesBean.java,读取行数据, 并存入List中,显示所有书籍信息的页面,显示所有商品列表-books.jsp, “ “ ,调用方法,得到数据列表,把数据列
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 艺术剪贴手工课件
- 企业职业卫生培训
- 培训财税知识简报课件
- 口罩旧物改造课件
- 培训课件个人简介
- 2025年度新能源物流安全责任与绿色运输合作协议
- 2025年度知名餐饮企业品牌形象合作及全渠道营销推广服务合同
- 2025年度企业年鉴编纂及宣传册创意设计合同
- 2025年环保产业专用设备节能改造采购合同模板
- 2025年度男方出轨离婚协议:女方心理调适与子女监护权争夺细则
- 建筑公司分包合同管理办法
- 2025至2030苏打水行业发展趋势分析与未来投资战略咨询研究报告
- 2025年秋季学期德育工作计划:向下扎根向上开花
- 2025-2030中国家政服务行业信用体系建设与服务质量监管报告
- 2025年安徽省普通高中学业水平选择性考试(物理)科目高考真题+(答案解析版)
- 2025年成都东部集团有限公司及下属企业招聘考试笔试试卷【附答案】
- 各分项工程质量保证措施
- GE彩超Logiq操作手册培训课件
- 罐头食品工艺
- 混凝土外加剂检测原始记录表
- GB/T 15670-1995农药登记毒理学试验方法
评论
0/150
提交评论