第11讲基于Servlet的MVC设计模式.ppt_第1页
第11讲基于Servlet的MVC设计模式.ppt_第2页
第11讲基于Servlet的MVC设计模式.ppt_第3页
第11讲基于Servlet的MVC设计模式.ppt_第4页
第11讲基于Servlet的MVC设计模式.ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、,第11讲 基于Servlet的MVC设计模式,2,回顾,如何使用Map进行数据的存取? 如何理解session在Web项目中的作用? 常用的集合类有哪些?它们之间的区别是什么?,3,本讲问题,什么是设计模式? 如何理解MVC设计模式? 为什么需要MVC设计模式?,4,理解MVC的优势 掌握MVC的应用开发 在MVC中会使用Servlet 进行程序控制,本章目标,5,JSP的缺点(2-1),JSP中登录功能的实现,提交数据到register.jsp,访问数据库,JSP中大量 调用业务代码,JSP的主要作用是什么?,逻辑判断,6,JSP的缺点(2-2),美工进行页面编辑和维护,美工, / ,这是

2、什么呀?我 只认识HTML标签,如果将流程控制和 数据显示分离就好了,7,如何解决JSP的缺点,1、在你所写的程序中,很多JSP页面直接 访问数据库,如果数据库表名改变了, 你所要做的工作是什么?,2、你的程序中所有的页面都需要美工进行美 化,但是他不懂Java怎么办?,8,生活案例,顾客点菜,顾客点菜,厨师,菜肴,服务员,加工菜肴,服务员,把菜单给厨师,服务员上菜,把菜单给服务员,把菜给服务员,以各自的功 能进行分工,9,Web程序的功能分工,如果把Web容器处理请求的过程按功能划分, 你如何进行划分?,10,MVC设计模式(2-1),MVC设计模式 模型 - Model 视图 - View

3、 控制器 - Controller,MVC 模式,控制器,模型,视图,JavaBean,JSP,Servlet,11,MVC设计模式(2-2),模型:代表应用程序状态和业务逻辑,控制器:根据客户的请求来操纵模型,并把结果经由视图展现给客户,视图:提供可交互的客户界面,向客户显示模型数据,MVC设计模式的模块组成,12,Web程序的MVC,Web容器处理请求过程,请求,Servlet,JavaBean,JSP页面,执行,调用,转向,响应,访问,返回数据,数 据 库,客户端,JSP视图动 态显示数据,数 据 库,Servlet控制器,用 于接收请求和控制 应用程序的流程,JavaBean数据 模型

4、进行业务逻 辑和访问数据库,13,MVC编程思路,MVC编程思路,执行,Servlet接收客户端 请求,并调用业务类 的方法进行数据处理,Servlet根据数据处理的 结果,控制下一个显示 的HTML或者JSP页面,Servlet,JSP页面,转向,JavaBean,调用,14,MVC编程(2-1),修改登录为MVC模式, ,提交给Servlet,创建页面-login2.html 使用Eclipce向导创建Servlet-LoginServlet.java, String pass = request.getParameter(password); String user = request.

5、getParameter(loginName); CheckLogin ck =new CheckLogin(); if (ck.validate(user, pass) response.sendRedirect(/store/ch05/books.jsp); else response.sendRedirect(/store/ch05/login2.html); ,创建一个业务类对象, 并调用validate()方法 判断用户是否存在,15,MVC编程(2-2),修改登录为MVC模式-创建业务类CheckLogin.java,public class CheckLogin public b

6、oolean 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

7、.setString(1, user); res = pStatement.executeQuery(); if (res.next() ,查询数据库,如果存在该用户返回true,否则返回false,演示示例2:CheckLogin.java,16,小结,MVC的三层结构是按什么来划分?每一层的功能和组件是什么? 举几个例子说明在程序中使用MVC的好处?,17,MVC实现结账功能(3-2),增加结帐的功能,创建处理订单的Servlet- ProcessOrder.java,String username = request.getParameter(username);/ 用户名 String

8、 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 OrderOperatio

9、n(); op.saveOrder(username, zipcode, phone, creditcard, total); session.invalidate(); request.getRequestDispatcher(/ch05/bye.jsp) .forward(request,response);,创建业务类对象,并调用操作数据库方法,从session中取出total,让session失效,18,MVC实现结账功能(3-3),增加结帐的功能,创建操作数据库业务类- OrderOperation.java,public class OrderOperation public in

10、t 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.executeUpdat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论