版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 20 2012 12 西安软件服务外包学院西安软件服务外包学院. .All rights reservedAll rights reserved. .Xian institute Service & Software Science Technology第三章第三章基于基于Servlet的会话跟踪(一)的会话跟踪(一)CISSST回顾 request、response 对象有哪些常用方法?web.xml文件的作用?如何理解Servlet的生命周期?实现页面跳转有几种方式?它们之间有哪些区别?如何理解HTTP协议?CISSST预习检查如何理解会话(session)?使用什么方法来获得H
2、ttpSession对象?CISSST本章任务升级 E-Book电子书店系统实现1.显示书籍列表2.点击书籍后显示书籍详细信息CISSST本章目标理解会话跟踪原理会获取session对象会使用session对象进行数据存取CISSSTHTTP协议1、HTTP协议有什么特点?协议有什么特点?无状态无状态访问访问访问访问我刚刚被访问了两次,但是我我刚刚被访问了两次,但是我不知道,是一个人访问了两次?不知道,是一个人访问了两次?还是两个人各访问一次还是两个人各访问一次HTTP协议不记录用户的信息协议不记录用户的信息2、 什么是无状态什么是无状态 ?CISSSTHTTP是无状态协议(3-1) 3、如何
3、显示张三和李四分别访问某一网页多如何显示张三和李四分别访问某一网页多 少次?少次?请求请求请求请求响应响应响应响应张三张三李四李四为了区分用户,需要为了区分用户,需要为不同用户作登记为不同用户作登记CISSSTHTTP是无状态协议(3-2)购买购买2个商品个商品张三张三李四李四4、在线购物系统中如何对用户进行区分?在线购物系统中如何对用户进行区分?购买购买3个商品个商品一共购买了一共购买了5个商品,个商品,钱应该从谁的帐户上扣呢?钱应该从谁的帐户上扣呢?CISSSTHTTP是无状态协议(3-3)Web程序能不能程序能不能像银行卡号那样,根据像银行卡号那样,根据卡号锁定一个用户呢?卡号锁定一个用
4、户呢?请求请求响应响应响应的时候,由服务器响应的时候,由服务器给我分配一个唯一给我分配一个唯一ID号,号,这样就能区别不同的用户了这样就能区别不同的用户了再次请求的时候,再次请求的时候,我带着我带着ID号,号,告诉服务器告诉服务器“我是谁我是谁”如何标识用户?如何标识用户?CISSST会话跟踪(2-1)HttpSession对象对象服务器为每个会话创建一个服务器为每个会话创建一个HttpSession对象对象每个会话对象都有一个唯一的每个会话对象都有一个唯一的ID把用户的数据保存在相应的把用户的数据保存在相应的HttpSession对象内对象内第一次请求第一次请求响应响应服务器创建一个服务器创
5、建一个HttpSession对象对象并把该对象的并把该对象的ID返回给用户返回给用户同时,服务器在内存中开辟同时,服务器在内存中开辟一空间,用来保存该对象数据一空间,用来保存该对象数据把把ID发送给客户端发送给客户端第二次请求把第二次请求把ID一一起发送给服务器起发送给服务器根据根据ID号服务器寻找号服务器寻找内存中相应的数据内存中相应的数据CISSST会话跟踪(2-2)请求请求 1请求请求 2请求请求 n.什么是会话什么是会话当前浏览器与服务器间多次的请求、响应关系,被称作一个会话当前浏览器与服务器间多次的请求、响应关系,被称作一个会话CISSST使用会话的事例public void doG
6、et(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 Int
7、eger(1); else counter = (Integer) count).intValue(); counter+;/计数加一计数加一/将计数存入将计数存入sessionsession.setAttribute(COUNTER, new Integer(counter); 取出取出session对对象内存储的值象内存储的值把数据存储在把数据存储在session对象内对象内记录不同用户的访问次数记录不同用户的访问次数 演示示例演示示例1:网页计算网页计算Counter.java获得获得session对象对象CISSST会话的创建和使用 public HttpSession getSess
8、ion(); public HttpSession getSession( boolean value); 会话的创建会话的创建使用使用HttpServletRequest 的的 getSession() 方法创建会话,方法创建会话, 语法如下:语法如下: 会话的使用会话的使用使用使用HttpSession接口的方法,进行接口的方法,进行保存数据:保存数据:取出数据:取出数据:public void setAttribute(String param,Object value);public Object getAttribute(String param);获取获取session对象的方法对
9、象的方法getSession( )getSession(boolean bool )getSession( true )truefalse返回与当前关联的返回与当前关联的会话,如果没有就会话,如果没有就创建后将其返回创建后将其返回返回与当前关联返回与当前关联的会话,如果没的会话,如果没有返回有返回null使用时,将其转换成原来数据类型使用时,将其转换成原来数据类型CISSSTsession对象的存在周期 session对象的存在周期对象的存在周期session的创建的创建浏览器访问服务器时,服务器为每个浏览器创建不同的浏览器访问服务器时,服务器为每个浏览器创建不同的session对象对象ses
10、sion的关闭的关闭调用调用session. invalidate()方法方法,使使session对象对象失失效效访问时间间隔大于非活动时间间隔访问时间间隔大于非活动时间间隔, session对象失效对象失效关闭浏览器时,关闭浏览器时,session对象失效对象失效请求请求在内存开辟空间在内存开辟空间保存数据信息保存数据信息清空内存内当前浏清空内存内当前浏览器相关数据信息览器相关数据信息CISSST现场编程 在登录页面用户已录入用户名,现在登录页面用户已录入用户名,现 在编写一个在编写一个Servlet接接 收该数据,并把用户名值保存在收该数据,并把用户名值保存在HttpSession对象内对
11、象内public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException String userName=request.getParameter(userName);HttpSession session=request.getSession();if (userName!=null & !.equals(userName)session.setAttribute(userName, userName);elseresponse.
12、sendRedirect(index.html);.CISSST实现电子书店的购物车需求描述需求描述 查看所有商品查看所有商品选择商品选择商品放入购物车放入购物车继续购物继续购物结账结账满载而归满载而归CISSST电子书店演示显示所有书籍的列表显示所有书籍的列表 点击某本书,显示书籍的详细信息点击某本书,显示书籍的详细信息添加当前书籍到购物车添加当前书籍到购物车CISSST电子书店的数据库设计字段名称字段类型说明isbnvarchar(20)图书编码图书编码titlevarchar(100)书名书名editionNumberint版本版本copyrightvarchar(20)版权版权publ
13、isherIDint出版商出版商IDimageFilevarchar(20)封面图像封面图像pricenumeric(9)价格价格数据库设计数据库设计数据库名:数据库名:books数据库表:数据库表:titlesCISSST电子书店的实体对象设计属性名称类型说明isbnString图书编码图书编码titleString书名书名editionNumberint版本版本copyrightString版权版权publisherIDint出版商出版商IDimageFileString封面图像封面图像pricedouble价格价格 对象的设计对象的设计-书书属性属性方法(方法(getter、setter
14、方法方法-为了得到和设置属性值)为了得到和设置属性值)CISSST实体类书籍类书籍类-BookBean.javaimport 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 publishe
15、rID;/出版商出版商IDprivate double price;/价格价格public void setISBN(String isbn) / 设定设定ISBN编号编号ISBN = isbn;public String getISBN() / 返回返回ISBN编号编号return ISBN;使用使用get方法,获得属性值方法,获得属性值BookBean类的私有属性类的私有属性标识该类可序列化标识该类可序列化 使用使用set方法,设置属性值方法,设置属性值CISSST电子书店的购物车设计 购物车的设计购物车的设计-书籍清单书籍清单书籍名称书籍名称购买数量购买数量书籍价格书籍价格小计小计总计总
16、计CISSST数据库连接类 数据库连接类:数据库连接类:ConnectionManager.javapublic class ConnectionManager /打开数据库连接打开数据库连接 public static Connection getConnction() Connection dbConnection = null;try Class.forName(driver); dbConnection = DriverManager.getConnection(url, user, pass); catch (Exception e) e.printStackTrace();retu
17、rn dbConnection; /关闭数据库连接关闭数据库连接 打开数据库连接,与打开数据库连接,与JSP相同相同演示示例演示示例2:数据库连接类数据库连接类ConnectionManager.javaCISSST数据库访问类 TitlesBean.javapublic List getTitles() List titlesList = new ArrayList(); try connection = ConnectionManager.getConnction(); titlesQuery = connection .prepareStatement(select* form titl
18、es); 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中中CISSST显示所有书籍信息的页面显示所有商品列表显示所有商品列表-books.jsp % TitlesBean titlesBean = new TitlesBean(); List titles = titlesBean.getTitles(); session.setAttribute( titles, titles ); /显示显示titles内数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 消防材料购销合同模板
- 2024年度许可合同:特殊行业经营许可协议
- 物业绿化管理2024年度合作协议
- 体验环卫工人实践报告
- 2024年度特许经营合同管理与维护详细约定
- 什么是最美的行囊800字
- 人格分析报告范文
- 《哮喘大鼠淋巴液中Th17、CD4~+CD25~+调节性T细胞与ICOS-ICOSL关系的研究》
- 《连杆欠驱动攀爬机器人抱持稳定性研究》
- 高效压缩机技术研究
- 第二思维找主体词
- 05 02 第五章第二节 吸收借鉴优秀道德成果
- 动物模型课件
- is620p系列伺服用户手册-v0.2综合版
- “说优点、讲不足”主题班会
- 健康体检知情同意书-2
- 幼儿园《小壁虎借尾巴》课件
- 血透腹透优缺点课件
- 三年级上册数学课件-7.2 认识几分之一丨苏教版 (共28张PPT)
- 内分泌性高血压规范化诊断和治疗
- 蚕豆根尖细胞微核实验报告
评论
0/150
提交评论