默然说话

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

牟勇ID:mouyong
64434次访问,排名1576好友4人,关注者6
我快乐,我存在
mouyong的文章
原创 108 篇
翻译 4 篇
转载 30 篇
评论 12 篇
默然的公告
如果要联系我,希望能说明来意,谢谢.

点击这里给我发消息

Google

最近评论
peigen:又~~~~为什么是又呢???
dcopperfield:顶下
gaoyunpeng:无意中进入到这个博客,很快就被里面的内容所吸引,感觉很有意思,不知道为什么会有这样的感觉,或许只是一种直觉上的吸引吧,一直在看博客里的文章,觉得很不错,天天等更新,哈哈,终于看到新的文章啦~
我会一直关注的~
mouyong:谢谢你的鼓励,我会更加努力。
了祝愿你实现自己的理想,达成自己的目标
wsspy007:牟老师,我发现你是我见过最好的老师了,为学生考虑最多,一切为学生着想,不知道牟老师还记得我么,张伟(无名小辈肯定你是忘记了),第一期跟杨大宇他们在一个班的,补考两次都没有及格,我现在不在昆明了,在胜利油田,这里一切都很好,一个月的薪金能顶得上昆明3-5个月的薪水,但是我不喜欢这份工作,钱固然多,但是从学校出来步入社会以后才发现,我还是应该走软件开发这条路,现在每天我只睡4-6个小时,工作12……
文章分类
收藏
    相册
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 教案:第5章 基于Servlet的MVC设计模式收藏

    新一篇: 教案:第6章 Model层开发,高级JDBC | 旧一篇: JSP中include指令和include行为的区别

     

    授课教师:牟勇
    课时:100分钟
     
    本章技能目标
    n理解MVC的优势
    n掌握MVC的应用开发
    n在MVC中会使用Servlet进行程序控制
    本章重点
    nMVC的应用开发
    nServlet在MVC中的应用
    本章难点
    nServlet在MVC中的应用
    本章工作任务
    n升级E-Book电子书店系统为MVC模式
    l   整章授课思路
    n本章依次讲解3个问题:为什么需要MVC,MVC的定义和使用MVC模式编程
    n为什么需要MVC:列举在JSP页面中大量使用Java代码进行访问数据库和处理业务逻辑的弊端,在这种情况下,应该根据JSP的特点,只是让它显示页面内容
    nMVC的定义:根据餐厅点菜的生活案例,说明在程序设计中为了提高程序的可维护性,根据组件的特点,把程序分为3层:模型,视图和控制器(JavaBean还没有讲,可以说明处理业务逻辑类和实体类都是JavaBean)。以及MVC中每一部分对应的组件和功能。
    n使用MVC模式编程:通过讲解MVC的模型,视图,控制器组件,说明使用MVC模式的编程思路:使用Servlet接收客户端数据,并调用业务类方法处理数据,最后转发或重定向到JSP或HTML文件,响应客户端请求。
    如何使用Map进行数据的存取?
    如何理解session在Web项目中的作用?
    常用的集合类有哪些?它们之间的区别是什么?
    什么是设计模式?
    如何理解MVC设计模式?
    为什么需要MVC设计模式?
    为什么需要MVC[20分钟]
    问题:JSP主要是作什么的?
    答案:网页内容的显示,方便美工进行开发。
    问题:可是,美工只认识HTML,看不懂Java代码,怎么办?
    答案:将Java代码搬离JSP。
    生活案例:顾客点菜。
    流程:服务员提供菜单,顾客点菜,之后服务员告诉大厨做什么;大厨做好之后,由服务员端给顾客。
    特点:对顾客提供服务的,似乎只有服务员,顾客不会和大厨打交道,各自分工,各司其职。
    问题:那我们的一个Web程序应该如何来分工呢?
    答案:处理表现逻辑的,处理业务逻辑的,处理数据访问的。
    MVC的定义[20分钟]
    什么是设计模式
    是一套被反复使用、多数人知晓的、代码设计经验的总结
    设计模式的作用
    解决一类问题的成功经验,设计的思路。为将来的修改预留退路。
    MVC设计模式
    模型:代表应用程序状态和业务逻辑
    视图:提供可交互的客户界面,向客户显示模型数据
    控制器:根据客户的请求来操纵模型,并把结果经由视图展现给客户
    使用MVC模式编程[40分钟]
    Web容器处理请求的过程
    教员简要说明客户端一次请求-响应过程中代码执行流程。
    强调:
    JSP视图动态显示数据,JavaBean数据模型进行业务逻辑和访问数据库。
    Servlet调用JavaBean相关方法,并根据执行结果完成转向。
    修改登录为MVC模式
    修改表单的action属性

    <form method= "post" name="Regsiter" action="/store/register">
    ……
    </form>

    添加Servlet

    String pass = request.getParameter("password");
    String user = request.getParameter("loginName");
    CheckLogin ck =new CheckLogin();
    if (ck.validate(user, pass))
        response.sendRedirect("/store/ch05/books.jsp");
    else
         response.sendRedirect("/store/ch05/register2.html");

    添加JavaBean

    public class CheckLogin {
         public boolean validate(String user, String pass) {
                     boolean valid = false;
                     Connection dbConnection = null;
                     ResultSet res = null;
                    try {
                         String sql = "select * from userinfo where loginname = ? ";
                         Connection con = ConnectionManager.getConnction();
                        PreparedStatement pStatement = con.prepareStatement(sql);
                         pStatement.setString(1, user);
                         res = pStatement.executeQuery();
                         if (res.next() && res.getString("password").equals(pass))
                                 valid = true;
                         } catch (SQLException sqlE) {sqlE.printStackTrace();}
                         return valid;
               }
    }

    常见错误:404
    教员应提醒学员在写转发路径时,不要写错,并再次提醒相对路径的写法。
    小结:
    让学员试总结MVC的优点和好处。然后教员说明MVC优点和好处。
    好处不在于在编码的时候方便了,好处在于使我们的程序将来的维护和扩展方便。
    MVC实现结账功能
    创建处理订单的Servlet-- ProcessOrder.java

    String   username = request.getParameter("username");// 用户名
    String   zipcode = request.getParameter("zipcode");// 邮编
    String   phone = request.getParameter("phone");// 电话
    String   creditcard = request.getParameter("creditcard");// 信用卡
     
    HttpSession session = request.getSession();
    double total = ((Double)session.getAttribute("total")).doubleValue();
    OrderOperation   op = new OrderOperation();
    op.saveOrder(username, zipcode, phone, creditcard, total);
    session.invalidate();
    request.getRequestDispatcher("/ch05/bye.jsp") .forward(request,response);

    创建操作数据库业务类-- OrderOperation.java

    public class OrderOperation {
         public int saveOrder(String username,String zipcode,
                                             String phone,String creditcard, double total){
               int result = 0;
               try {
                  Connection con = ConnectionManager.getConnction();
                  String strSql = "insert into BookOrder(username,zipcode,phone,"
                                              + "creditcard,total) values(?,?,?,?,?)";
                  PreparedStatement pStatement = con.prepareStatement(strSql);
                  pStatement.setString(1, username);
                  …//设置其他参数值
                  result = pStatement.executeUpdate();
                } catch (SQLException sqlE) {      sqlE.printStackTrace();      }
                   return result;
               }
    }

    为什么使用MVC设计模式?
    MVC设计模式各部分对应的组件是什么?
    MVC各部分间是如何协作的?
    设计模式
    MVC各部分间如何协作
     暂无
     暂无
     习题1:112页至113页选择题
     习题2:113页第1,2,3题

     习题3:预习第六章,试做课后的选择题

    发表于 @ 2008年05月22日 16:23:00|评论(loading...)|编辑

    新一篇: 教案:第6章 Model层开发,高级JDBC | 旧一篇: JSP中include指令和include行为的区别

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 默然