默然说话

一个异想天开的人做着异想天开的梦

用户操作
[即时聊天] [发私信] [加为好友]
默然ID:mouyong
66136次访问,排名1572好友5人,关注者9
我快乐,我存在
mouyong的文章
原创 108 篇
翻译 4 篇
转载 31 篇
评论 13 篇
默然的公告
如果要联系我,希望能说明来意,谢谢.

点击这里给我发消息

Google

最近评论
sap99:www.sap99.com/,SAP99资料多多

SAP免费资料下载
http://www.sap99.com

有很多的学习资料,推荐一下,
peigen:又~~~~为什么是又呢???
dcopperfield:顶下
gaoyunpeng:无意中进入到这个博客,很快就被里面的内容所吸引,感觉很有意思,不知道为什么会有这样的感觉,或许只是一种直觉上的吸引吧,一直在看博客里的文章,觉得很不错,天天等更新,哈哈,终于看到新的文章啦~
我会一直关注的~
mouyong:谢谢你的鼓励,我会更加努力。
了祝愿你实现自己的理想,达成自己的目标
文章分类
收藏
    相册
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 教案:《开发基于JSPServletJavaBean的网上交易系统》教案—第3章 基于Servlet的会话跟踪(一)收藏

    新一篇: 教案:开发基于JSPServletJavaBean的网上交易系统-第4章 基于Servlet的会话跟踪(二) | 旧一篇: 教案:开发基于JSPServletJavaBean的网上交易系统-第2章 Servlet基础

      由于种种原因,部分内容被隐藏,请大家原谅。

    如果有什么问题,可以与我联系,我会尽快解答。

    如果你觉得这篇文章对你有用,请回贴,谢谢。

     

     

    授课教师:牟勇
    课时:100分钟
     
    本章技能目标
    n理解会话跟踪原理
    n会获得Sesison对象
    n会使用session对象进行数据存取
    本章重点
    nHttpSession的理解
    nsession的创建
    本章难点
    n使用session进行会话跟踪
    本章工作任务
    n升级E-Book电子书店实现购物车功能
    显示书籍列表
    单击书籍后,显示书籍的详细信息
    l   整章授课思路
    n本章依次讲解三个问题:回顾HTTP协议的无状态,会话跟踪原理,实现E-Book电子书店显示和查看书籍。
    n回顾HTTP协议的无状态:通过计算机在网络中遇到的问题,进行疑问式阐述HTTP的无状态,而这种无状态在很多情况下无法完成程序的需要。在这种情况下,只有通过会话跟踪来实现。
    n会话跟踪原理:服务器可以为客户端分配一个唯一的ID号,从而来区分不同的客户端。并说明会话是如何创建,使用的,以及会话的存在周期。
    n实现E-Book电子书店显示和查看书籍:首先获得所有书籍的信息并显示,当用户单击某一本书籍时,显示该书籍的详细信息,以供用户选择是否购买。
    request、response 对象有哪些常用方法?
    web.xml文件的作用?
    如何理解Servlet的生命周期?
    实现页面跳转有几种方式?它们之间有哪些区别?
    如何理解HTTP协议?
    如何理解会话(session)?
    使用什么方法来获得HttpSession对象?
    回顾HTTP协议的无状态:[20分钟]
    问题1:HTTP有什么特点?
    答案:无状态
    问题2:什么是无状态?
    答案:HTTP协议不记录用户的访问信息。
    问题3:如何显示张三和李四分别访问了多少次服务?
    答案:HTTP协议无法做到,只能另想别的办法,记录用户张三和李四的访问次数。
    问题4:在线购物中如何对不同的用户进行区别?
    答案:HTTP协议无法做到,只能另想别的办法。
    分析:问题3和4归纳起来,其实只要解决一个问题:如何标识一个用户?
    解决方案:由服务器提供唯一标识(ID号),每次用户访问时检查这个ID号,以便识别用户。这个方案就是我们平时所说的会话跟踪。
                 
    HttpSession对象
    服务器为每个会话创建一个HttpSession对象
    每个会话对象都有一个唯一的ID
    把用户的数据保存在相应的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);
     

    教员应说明两个getSession方法之间的区别。
    会话的使用
    保存数据,取出数据

    public void setAttribute(String param,Object value);
    public Object getAttribute(String param);
     

    说明:保存数据时,数据应以对象的形式进行保存,取出时,数据的类型为Object,所以需要进行类型转换。
    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 && "".equals(userName))
                  session.setAttribute("userName", userName);
           else
                  response.sendRedirect("index.html");
    }
    ...

    教员应请一至二位学员完成该练习。
    实现E-Book电子书店显示和查看书籍[30分钟]
    实现电子书店的购物车
    根据幻灯片,说明电子书店购物车的业务流程。
    电子书店演示
    显示所有书籍的列表
    点击某本书,显示书籍的详细信息
    添加当前书籍到购物车
    电子书店的数据库设计
    见幻灯片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;
           }
           …
    }
    ...

    教员详细说明实体Bean的一般写法(私有变量,默认构造方法,setXXX()与getXXX()方法)
    购物车的设计----书籍清单
    见幻灯片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>

    简要说明上面的代码(如果有时间,可以现场演示或请学员来做)
     
    在Web项目中为什么需要使用会话?
    会话是如何创建的?
    如何结束一个会话?
    如何在会话中保存和取得数据?
    如何创建会话
    如何结束一个会话
    如何在会话中保存和取得数据
     暂无
     暂无
     习题1:71页至72页选择题
     习题2:72页第1,2,3,4题
     习题3:预习第四章,试做课后的选择题

    发表于 @ 2008年05月08日 14:35:03|评论(loading...)|编辑

    新一篇: 教案:开发基于JSPServletJavaBean的网上交易系统-第4章 基于Servlet的会话跟踪(二) | 旧一篇: 教案:开发基于JSPServletJavaBean的网上交易系统-第2章 Servlet基础

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 默然