第8章 基于Servlet的MVC模式 (2).ppt

上传人:qwe****56 文档编号:80590987 上传时间:2023-03-23 格式:PPT 页数:41 大小:143KB
返回 下载 相关 举报
第8章 基于Servlet的MVC模式 (2).ppt_第1页
第1页 / 共41页
第8章 基于Servlet的MVC模式 (2).ppt_第2页
第2页 / 共41页
点击查看更多>>
资源描述

《第8章 基于Servlet的MVC模式 (2).ppt》由会员分享,可在线阅读,更多相关《第8章 基于Servlet的MVC模式 (2).ppt(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第8章章 MVCMVC模式模式 课程目标课程目标n理解理解MVC模式的基本思想模式的基本思想n视图视图n模型模型n控制器控制器n能够运用能够运用MVC模式编写模式编写Web应用程序应用程序引入引入nMVC模式的核心思想是有效地组合模式的核心思想是有效地组合“视视图图”、“模型模型”和和“控制器控制器”。n掌握掌握MVC模式对于设计合理的模式对于设计合理的Web应用应用框架有着十分重要的意义。框架有着十分重要的意义。1.MVC模式介绍模式介绍nJSP开发的两种模型(开发的两种模型(Model1/Model2)n模型模型1n使用使用JSP+JavaBeans将页面显示和业务逻将页面显示和业务逻辑

2、处理分开辑处理分开nJSP实现页面显示,响应请求并将结果返回实现页面显示,响应请求并将结果返回给客户给客户nJavaBean对象保存数据和实现业务逻辑对象保存数据和实现业务逻辑模型模型1的架构示意图的架构示意图Web服务器服务器浏浏览览器器JSPJavaBeans数据库数据库请求响应请求响应模型模型1的实例(详细)的实例(详细)n按照模型按照模型1编写一个编写一个用户登录验证的程序用户登录验证的程序n分析分析n页面:页面:nlogin.html:登录主页面;:登录主页面;nloginchk.jsp:创建数据对象,保存用户登录信:创建数据对象,保存用户登录信息;调用方法进行验证;验证通过,转发至

3、息;调用方法进行验证;验证通过,转发至welcome.jsp,否则,否则loginerr.jsp,请求重新登,请求重新登录录nloginerr.jsp:登录错误页面:登录错误页面nwelcome.jsp:登录成功页面:登录成功页面n数据保存和处理数据保存和处理nUserBean.java:保存用户登录信息,向:保存用户登录信息,向JSP页面传递信息;页面传递信息;nUserCheckBean.java:对用户名和密码对用户名和密码进行验证;完成登录验证功能的主要业务进行验证;完成登录验证功能的主要业务逻辑;逻辑;UserBean.javapublic class UserBean privat

4、e String name;private String password;UserCheckpublic class UserCheckBean protected UserBean user;public UserCheckBean(UserBean user)this.user=user;.public boolean validate()String name=user.getName();String password=user.getPassword();/实际应用中,你应该查询数据库,验证用户名实际应用中,你应该查询数据库,验证用户名和密码。和密码。if(张三张三.equals(

5、name)&1234.equals(password)return true;else return false;loginchk.jsp模型模型1分析分析n优点:实现了页面显示与业务逻辑的分优点:实现了页面显示与业务逻辑的分离离n缺点缺点n需要在需要在JSP页面控制流程转向并且调用页面控制流程转向并且调用JavaBean代码代码n业务逻辑复杂时,业务逻辑复杂时,JSP编写变得复杂编写变得复杂n总结:简单的小型应用,可以使用总结:简单的小型应用,可以使用1.MVC模式介绍模式介绍n模型模型2n将模型将模型1中中JSP嵌入的流程控制和部分嵌入的流程控制和部分逻辑处理代码提取至一个单独的角色:逻辑

6、处理代码提取至一个单独的角色:控制器控制器n模型模型2是是MVC架构模式在架构模式在WEB开发中开发中的应用的应用1.MVC模式介绍模式介绍 nMVC是一种设计模式,由是一种设计模式,由Trygve为发展为发展SmallTalk在在1978年提出的,出现在年提出的,出现在GUI设计中。设计中。nMVC按功能对各种对象进行分割,目的按功能对各种对象进行分割,目的是为了将对象的耦合程度降至最低。是为了将对象的耦合程度降至最低。1.MVC模式介绍模式介绍nMVC是一种通过是一种通过3个不同部分构造一个软件或个不同部分构造一个软件或组件的理想办法:组件的理想办法:n模型(模型(Model)封装了最核心

7、的功能,用于存封装了最核心的功能,用于存储数据以及处理用户请求的业务逻辑。储数据以及处理用户请求的业务逻辑。n视图(视图(View)系统和用户交互的界面,从模型系统和用户交互的界面,从模型那获得数据并表现数据,同时将用户请求通知通知那获得数据并表现数据,同时将用户请求通知通知器。器。n控制器(控制器(Controller)扮演调度者的角色,扮演调度者的角色,即控制器根据视图提出的请求判断将请求和数据交即控制器根据视图提出的请求判断将请求和数据交给那个模型处理,处理后的有关结果交给哪个视图给那个模型处理,处理后的有关结果交给哪个视图更新显示更新显示2.JSP2.JSP中的中的MVCMVC模式模式

8、n模型(模型(Model):一个或多个):一个或多个JavaBean对象,对象,用于存储数据和处理数据;用于存储数据和处理数据;n视图(视图(View):一个或多个):一个或多个JSP页面,为模型页面,为模型提供数据显示,提供数据显示,JSP页面主要使用页面主要使用 HTML标记标记和和JavaBean标记来显示数据。标记来显示数据。n 控制器(控制器(Controller):一个或多个):一个或多个Servlet对对象,根据视图提交的请求进行控制,生成象,根据视图提交的请求进行控制,生成JavaBean实例输出给实例输出给JSP页面页面.模型模型2的架构示意图的架构示意图Web服务器服务器浏

9、浏览览器器HtmlJSP(视图视图)JavaBeans(模型模型)数据库数据库请求请求响应响应Servlet(控制器控制器)选择视图选择视图实例化实例化请求请求模型模型2的实例的实例n按照模型按照模型2的架构重写的架构重写用户登录验证程序用户登录验证程序n分析:分析:nlogin2.html:登录主页面;由:登录主页面;由ControllerServlet来接收请求来接收请求nControllerServlet.java:接收用户登录请求接收用户登录请求信息,调用信息,调用JavaBean组件对其进行验证,组件对其进行验证,并根据结果调用并根据结果调用JSP页面返回客户端页面返回客户端logi

10、n2.html 用户名:用户名:密码:密码:ControllerServlet.java String action=request.getParameter(action);/验证请求合法性验证请求合法性 if(!isValidated(request)&!(login.equals(action)gotoPage(login2.html,request,response);return;ControllerServlet.javaif(login.equals(action)UserBean user=new UserBean();user.setName(request.getParam

11、eter(name);user.setPassword(request.getParameter(password);UserCheckBean uc=new UserCheckBean(user);if(uc.validate()3.模型的生命周期与视图更新模型的生命周期与视图更新n由由Servlet负责创建负责创建JavaBean,并将,并将JSP页面发送的相关数据存储到页面发送的相关数据存储到JavaBean中中,将将JavaBean实例保存到相实例保存到相应的对象中(应的对象中(request、session等)等)nServlet请求的某个请求的某个JSP页面显示页面显示JavaBe

12、an的数据的数据3.1 request周期的JavaBean n用用CreateJavaBeanClassCreateJavaBeanClass类类的的某某个个构构造造方方法法创创建建JavabeanJavabean对象对象,例如:,例如:nCreateJavaBeanClass bean=new CreateJavaBeanClass();n将将 所所 创创 建建 的的 JavaBeanJavaBean对对 象象 存存 放放 到到HttpServletRequestHttpServletRequest对对象象requestrequest中中,并并指指定定查查找该找该JavaBeanJavaB

13、ean的关键字,例如:的关键字,例如:nrequest.setAttribute(keyWord,bean);视图更新视图更新 nServlet请求请求JSP页面的代码页面的代码nRequestDispatcher dis=request.getRequestDispatcher(“/show.jsp”)ndis.forward(request,reponse);nJSP页面使用如下标记获得页面使用如下标记获得Servlet所创建的所创建的JavaBean的引用的引用:n n显示具体数据:显示具体数据:jsp:getProperty name=keyWord property=“JavaBea

14、n的变量的变量”3.23.2 sessionsession周期的周期的JavaBeanJavaBean n用用CreateJavabeanClass类的某个构造方法类的某个构造方法创创建建JavaBean对象对象,例如:,例如:nCreateJavaBeanClass bean=new CreateJavaBeanClass();n将所创建的将所创建的JavaBean对象对象存放到存放到HttpServletSession对象对象session中,并指定中,并指定查找该查找该JavaBean的关键字,例如:的关键字,例如:nHttpSession session=request.getSess

15、ion(true);nsession.setAttribute(keyWord,bean);视图更新视图更新 nJSP页面使用如下标记页面使用如下标记获得获得Servlet所创所创建的建的JavaBean的引用的引用:3.3 3.3 applicationapplication周期的周期的JavaBeanJavaBean n用用CreateJavaBeanClassCreateJavaBeanClass类类的的某某个个构构造造方方法法创创建建JavaBeanJavaBean对对象象,例如,例如nCreateJavaBeanClass bean=new CreateJavaBeanClass()

16、;nServletServlet使使用用getServletContextgetServletContext()()方方法法返返回回服服务务器器创创建建的的ServletContextServletContext对对象象的的引引用用,将将所所创创建建的的JavaBeanJavaBean对对象象存存放放到到ServletContextServletContext对对象象中中,并指定并指定查查找找该该JavaBeanJavaBean的关的关键键字,例如:字,例如:ngetServletContext().setAttribute(keyWord,bean);视图更新视图更新 nJSP页面使用如下标

17、记获得页面使用如下标记获得Servlet所所创创建的建的JavaBean的引用的引用:实例实例n计算三角形面积计算三角形面积n四则运算四则运算n查询数据库查询数据库计算三角形面积计算三角形面积n题目:输入三角形三条边的长度,计算并显示题目:输入三角形三条边的长度,计算并显示三角形的面积。三角形的面积。n设计分析:设计分析:n界面界面JSP:输入三条边:输入三条边(input.jsp),显示三角形面,显示三角形面积积(show.jsp)n模型模型JavaBean:(Triangle.java)判断三条边是否能判断三条边是否能组成三角形,计算三角形面积组成三角形,计算三角形面积n控制器控制器Ser

18、vlet:从:从input.jsp接收三条边输入的数接收三条边输入的数据,创建响应的据,创建响应的JavaBean实例,验证输入合法性实例,验证输入合法性后再计算三角形面积结果发给后再计算三角形面积结果发给show.jspn思考思考:如果输入比较复杂,验证合法性工作怎:如果输入比较复杂,验证合法性工作怎么处理比较好?(从功能上考虑)么处理比较好?(从功能上考虑)Triangle.javapublic class Triangle double sideA,sideB,sideC;/三角形三边三角形三边 double area;/面积面积 boolean isTriangle;/是否构成一个三是

19、否构成一个三角形角形Triangle.java/*计算三角形面积,计算三角形面积,如果可以构成三角形,如果可以构成三角形,返回面积返回面积,否则返回否则返回0 */public double getArea()return Area;/*判断三边是否构成一个三角形判断三边是否构成一个三角形 */public boolean getIsTriangle();return isTriangle;HandleData.java public void doPost()Triangle tri=new Triangle();/创建创建Javabean对象对象 request.setAttribute(

20、triangle,tri);/将将tri存储到存储到HttpServletRequest对象中对象中。/获取三边的值并存放在获取三边的值并存放在tri对象中对象中 tri.getArea();/调用调用getArea()方法计算三角形方法计算三角形面积面积RequestDispatcher dispatcher=request.getRequestDispatcher(/show.jsp);dispatcher.forward(request,response);/请求请求show.jsp显示显示tri中的数据中的数据 show.jsp三角形的三边是:三角形的三边是:边边A:边边B:练习练习n

21、将将P92页第五章猜数游戏改成页第五章猜数游戏改成MVC模式模式四则运算四则运算n题目:计算两个数的四则运算题目:计算两个数的四则运算n分析分析n视图:输入两个数和运算符号页面视图:输入两个数和运算符号页面(inputNumber.jsp)显示计算结果页面)显示计算结果页面(showResult.jsp)n模型:存储运算数、符号、计算运算结果并模型:存储运算数、符号、计算运算结果并返回(返回(ComputerBean.java)n控制器:获取用户输入,存放于相应的控制器:获取用户输入,存放于相应的javaBean中,获取结果并返回给显示页面中,获取结果并返回给显示页面查询数据库查询数据库n题目

22、:选择一个数据库的表,分页显示题目:选择一个数据库的表,分页显示表的记录。表的记录。n分析设计:分析设计:n页面:选择数据库、表、分页显示页数页面:选择数据库、表、分页显示页数(choiceDatabase.jsp)显示数据库表的记录显示数据库表的记录(showRecord.jsp)n控制器:接收用户数据,创建相应的控制器:接收用户数据,创建相应的bean存放数据中,获取分页显示结果发送给存放数据中,获取分页显示结果发送给showRecord.jspn模型:模型:showRecordPage.java将查询的结将查询的结果进行分页显示结果,果进行分页显示结果,Database.java,根,根

23、据数据库、表返回查询结果。据数据库、表返回查询结果。MVC模式的今天模式的今天nStructs:Apache软件基金下软件基金下Jakarta项目的项目的一部分。一部分。Struts框架的主要架构设计和开发者框架的主要架构设计和开发者是是Craig R.McClanahan nWebwork n其他框架其他框架nSpringnHibernatenAjax:Asynchronous JavaScript and XML测验测验n编写一个编写一个Servlet,简单的显示,简单的显示“欢欢迎您访问本网站迎您访问本网站”的的Servlet(注意(注意中文显示),保存为中文显示),保存为hellowo

24、rld.java n创建创建Servlet的类是的类是tom.jiafei,应该,应该如何配置它才能运行?如何配置它才能运行?练习题练习题51.不同作用范围的不同作用范围的JavaBean的生命周期有什么不同?的生命周期有什么不同?2.作为一个作为一个Java类,类,JavaBean一般需要符合什么条件一般需要符合什么条件?3.在在JSP页面使用页面使用bean的标记是?其中涉及的三种属的标记是?其中涉及的三种属性的含义?性的含义?4.简单叙述简单叙述javaBean的工作原理?的工作原理?5.如果在如果在javaBean的属性的属性aa中没有中没有getAa()方法,那方法,那么在么在jsp

25、中可以用中可以用getProperty的标记形式获取属性的标记形式获取属性aa的值吗?为什么?的值吗?为什么?6.写出三种在写出三种在JSP中设置中设置bean属性的方式?属性的方式?7.书上习题书上习题练习题练习题61.什么是输入流?什么是输出流?列举出什么是输入流?什么是输出流?列举出常见的文件输入输出流。常见的文件输入输出流。2.如何读取文件?写出关键语句如何读取文件?写出关键语句3.如何写入文件?写出关键语句如何写入文件?写出关键语句4.RandomAccessFile的主要特点?的主要特点?5.如何列出指定目录如何列出指定目录fileDir下的所有文件下的所有文件?练习题练习题9n简述简述MVC的基本思想的基本思想n书上习题书上习题

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 财经金融

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁