教案:《开发基于JSPServletJavaBean的网上交易系统》教案—第3章 基于Servlet的会话跟踪(一)
2008-05-08 14:35
736 查看
由于种种原因,部分内容被隐藏,请大家原谅。
如果有什么问题,可以与我联系,我会尽快解答。
如果你觉得这篇文章对你有用,请回贴,谢谢。
授课教师:牟勇
课时:100分钟
l 本章技能目标
n理解会话跟踪原理
n会获得Sesison对象
n会使用session对象进行数据存取
l 本章重点
nHttpSession的理解
nsession的创建
l 本章难点
n使用session进行会话跟踪
l 本章工作任务
n升级E-Book电子书店实现购物车功能
u 显示书籍列表
u 单击书籍后,显示书籍的详细信息
l 整章授课思路
n本章依次讲解三个问题:回顾HTTP协议的无状态,会话跟踪原理,实现E-Book电子书店显示和查看书籍。
n回顾HTTP协议的无状态:通过计算机在网络中遇到的问题,进行疑问式阐述HTTP的无状态,而这种无状态在很多情况下无法完成程序的需要。在这种情况下,只有通过会话跟踪来实现。
n会话跟踪原理:服务器可以为客户端分配一个唯一的ID号,从而来区分不同的客户端。并说明会话是如何创建,使用的,以及会话的存在周期。
n实现E-Book电子书店显示和查看书籍:首先获得所有书籍的信息并显示,当用户单击某一本书籍时,显示该书籍的详细信息,以供用户选择是否购买。
回顾: [5分钟]
request、response 对象有哪些常用方法?
web.xml文件的作用?
如何理解Servlet的生命周期?
实现页面跳转有几种方式?它们之间有哪些区别?
如何理解HTTP协议?
预习检查: [5分钟]
如何理解会话(session)?
使用什么方法来获得HttpSession对象?
课程知识点讲解:
回顾HTTP协议的无状态:[20分钟]
问题1:HTTP有什么特点?
答案:无状态
问题2:什么是无状态?
答案:HTTP协议不记录用户的访问信息。
问题3:如何显示张三和李四分别访问了多少次服务?
答案:HTTP协议无法做到,只能另想别的办法,记录用户张三和李四的访问次数。
问题4:在线购物中如何对不同的用户进行区别?
答案:HTTP协议无法做到,只能另想别的办法。
分析:问题3和4归纳起来,其实只要解决一个问题:如何标识一个用户?
解决方案:由服务器提供唯一标识(ID号),每次用户访问时检查这个ID号,以便识别用户。这个方案就是我们平时所说的会话跟踪。
会话跟踪原理[30分钟]
HttpSession对象
v 服务器为每个会话创建一个HttpSession对象
v 每个会话对象都有一个唯一的ID
v 把用户的数据保存在相应的HttpSession对象内
什么是会话?
Session的中文意思就是会话。它是指当前浏览器与服务器间多次的请求、响应关系,
示例:记录不同用户的访问次数
教员应详细讲解重点代码(红色部分)
会话的创建
使用HttpServletRequest 的 getSession() 方法创建会话,
语法如下:
教员应说明两个getSession方法之间的区别。
会话的使用
保存数据,取出数据
说明:保存数据时,数据应以对象的形式进行保存,取出时,数据的类型为Object,所以需要进行类型转换。
session对象的存在周期
v session的创建
n 浏览器访问服务器时,服务器为每个浏览器创建不同的session对象
v session的关闭
n 调用session. invalidate()方法,使session对象失效
n 访问时间间隔大于非活动时间间隔, session对象失效
n 关闭浏览器时,session对象失效
现场编程:在登录页面用户已录入用户名,现编写一个Servlet接收该数据,并把用户名值保存在HttpSession对象内
教员应请一至二位学员完成该练习。
实现E-Book电子书店显示和查看书籍[30分钟]
实现电子书店的购物车
根据幻灯片,说明电子书店购物车的业务流程。
电子书店演示
v 显示所有书籍的列表
v 点击某本书,显示书籍的详细信息
v 添加当前书籍到购物车
电子书店的数据库设计
见幻灯片19
电子书店的实体对象设计-书(Book)
见幻灯片20
书籍类--BookBean.java
教员详细说明实体Bean的一般写法(私有变量,默认构造方法,setXXX()与getXXX()方法)
购物车的设计----书籍清单
见幻灯片21
数据库连接类
简要说明数据库连接类(打开,关闭,如果有时间,可以现场演示)
数据库访问类
简要说明上面的代码(如果有时间,可以现场演示,或请学员来做)
显示所有商品列表--books.jsp
简要说明上面的代码(如果有时间,可以现场演示或请学员来做)
显示书籍详细信息――displayBook.jsp
简要说明上面的代码(如果有时间,可以现场演示或请学员来做)
本章总结 [10分钟]
在Web项目中为什么需要使用会话?
会话是如何创建的?
如何结束一个会话?
如何在会话中保存和取得数据?
考核点
如何创建会话
如何结束一个会话
如何在会话中保存和取得数据
扩展部分:
暂无
学员问题汇总:
暂无
作业:
习题1:71页至72页选择题
习题2:72页第1,2,3,4题
习题3:预习第四章,试做课后的选择题
如果有什么问题,可以与我联系,我会尽快解答。
如果你觉得这篇文章对你有用,请回贴,谢谢。
授课教师:牟勇
课时:100分钟
l 本章技能目标
n理解会话跟踪原理
n会获得Sesison对象
n会使用session对象进行数据存取
l 本章重点
nHttpSession的理解
nsession的创建
l 本章难点
n使用session进行会话跟踪
l 本章工作任务
n升级E-Book电子书店实现购物车功能
u 显示书籍列表
u 单击书籍后,显示书籍的详细信息
l 整章授课思路
n本章依次讲解三个问题:回顾HTTP协议的无状态,会话跟踪原理,实现E-Book电子书店显示和查看书籍。
n回顾HTTP协议的无状态:通过计算机在网络中遇到的问题,进行疑问式阐述HTTP的无状态,而这种无状态在很多情况下无法完成程序的需要。在这种情况下,只有通过会话跟踪来实现。
n会话跟踪原理:服务器可以为客户端分配一个唯一的ID号,从而来区分不同的客户端。并说明会话是如何创建,使用的,以及会话的存在周期。
n实现E-Book电子书店显示和查看书籍:首先获得所有书籍的信息并显示,当用户单击某一本书籍时,显示该书籍的详细信息,以供用户选择是否购买。
回顾: [5分钟]
request、response 对象有哪些常用方法?
web.xml文件的作用?
如何理解Servlet的生命周期?
实现页面跳转有几种方式?它们之间有哪些区别?
如何理解HTTP协议?
预习检查: [5分钟]
如何理解会话(session)?
使用什么方法来获得HttpSession对象?
课程知识点讲解:
回顾HTTP协议的无状态:[20分钟]
问题1:HTTP有什么特点?
答案:无状态
问题2:什么是无状态?
答案:HTTP协议不记录用户的访问信息。
问题3:如何显示张三和李四分别访问了多少次服务?
答案:HTTP协议无法做到,只能另想别的办法,记录用户张三和李四的访问次数。
问题4:在线购物中如何对不同的用户进行区别?
答案:HTTP协议无法做到,只能另想别的办法。
分析:问题3和4归纳起来,其实只要解决一个问题:如何标识一个用户?
解决方案:由服务器提供唯一标识(ID号),每次用户访问时检查这个ID号,以便识别用户。这个方案就是我们平时所说的会话跟踪。
会话跟踪原理[30分钟]
HttpSession对象
v 服务器为每个会话创建一个HttpSession对象
v 每个会话对象都有一个唯一的ID
v 把用户的数据保存在相应的HttpSession对象内
什么是会话?
Session的中文意思就是会话。它是指当前浏览器与服务器间多次的请求、响应关系,
示例:记录不同用户的访问次数
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(true); //获得Session对象 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)); } } |
会话的创建
使用HttpServletRequest 的 getSession() 方法创建会话,
语法如下:
public HttpSession getSession(); public HttpSession getSession( boolean value); |
会话的使用
保存数据,取出数据
public void setAttribute(String param,Object value); public Object getAttribute(String param); |
session对象的存在周期
v session的创建
n 浏览器访问服务器时,服务器为每个浏览器创建不同的session对象
v session的关闭
n 调用session. invalidate()方法,使session对象失效
n 访问时间间隔大于非活动时间间隔, session对象失效
n 关闭浏览器时,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 && "".equals(userName)) session.setAttribute("userName", userName); else response.sendRedirect("index.html"); } ... |
实现E-Book电子书店显示和查看书籍[30分钟]
实现电子书店的购物车
根据幻灯片,说明电子书店购物车的业务流程。
电子书店演示
v 显示所有书籍的列表
v 点击某本书,显示书籍的详细信息
v 添加当前书籍到购物车
电子书店的数据库设计
见幻灯片19
电子书店的实体对象设计-书(Book)
见幻灯片20
书籍类--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; } … } ... |
购物车的设计----书籍清单
见幻灯片21
数据库连接类
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; } //关闭数据库连接 … } |
数据库访问类
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; } |
显示所有商品列表--books.jsp
<% TitlesBean titlesBean = new TitlesBean(); List titles = titlesBean.getTitles(); session.setAttribute( "titles", titles ); //显示titles内数据 for(int i=0;i<titles.size( );i++){ %> <td> <A href="displayBook.jsp?isbn=<%= currentBook.getISBN() %>"> <IMG height=110 src="/store/images/<%=currentBook.getImageFile() %>"> </A> </td> <% } %> |
显示书籍详细信息――displayBook.jsp
<% List titles = (List) session.getAttribute("titles"); int size = titles.size(); BookBean book = null; String isbn = request.getParameter("isbn"); int i = 0; while (i < size) { book = (BookBean) titles.get(i); if (isbn.equals(book.getISBN())) { session.setAttribute("bookToAdd", book); // 保存书籍到session对象 break; // isbn 匹配当前书籍 } i++; } %> <td><IMG src="/store/images/<%=book.getImageFile() %>" /></td> |
本章总结 [10分钟]
在Web项目中为什么需要使用会话?
会话是如何创建的?
如何结束一个会话?
如何在会话中保存和取得数据?
考核点
如何创建会话
如何结束一个会话
如何在会话中保存和取得数据
扩展部分:
暂无
学员问题汇总:
暂无
作业:
习题1:71页至72页选择题
习题2:72页第1,2,3,4题
习题3:预习第四章,试做课后的选择题
相关文章推荐
- 教案:开发基于JSPServletJavaBean的网上交易系统-第4章 基于Servlet的会话跟踪(二)
- 教案:《开发基于JSPServletJavaBean的网上交易系统》第7章 View层开发,JavaBean在JSP中的使用
- 教案:开发基于JSPServletJavaBean的网上交易系统-第9章 Web服务
- 教案:《开发基于JSPServletJavaBean的网上交易系统》第8章 View层开发:EL和JSTL
- 教案:开发基于JSPServletJavaBean的网上交易系统-第2章 Servlet基础
- JSP+Servlet培训班作业管理系统[13] -使用基于Action的后端(用户登录为例)
- Servlet-JSP会话跟踪机制
- javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册
- 对基于Servlet+JSP+JavaBean开发模式的用户登录注册的升级
- 基于jsp+servlet实现的简单博客系统实例(附源码)
- 使用JSP/Servlet技术开发新闻发布系统
- 基于servlet/jsp+mysql(DbUtils )的学生系统
- 使用JSP/Servlet开发系统-课程复习试卷测试分析1
- JSP、Servlet实战:团队开发新闻系统(六)类似ThinkPHP的中转页
- 基于jsp+servlet图书管理系统之后台用户信息查询操作
- 基于Servlet+JSP+JavaBean开发模式的用户登录注册
- java毕设---基于servlet+jsp+mysql的航空订票系统
- 【S2第二学期-使用JSP/Servlet技术开发新闻发布系统】全书知识点总结
- 1分钟链圈 | 华尔街视比特币为“竞争威胁”;数字货币交易速度降至2015年来最低;沃尔玛推出基于区块链的“包裹递送跟踪系统”