




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章MVC模式,课程目标,理解MVC模式的基本思想视图模型控制器能够运用MVC模式编写Web应用程序,引入,MVC模式的核心思想是有效地组合“视图”、“模型”和“控制器”。掌握MVC模式对于设计合理的Web应用框架有着十分重要的意义。,1.MVC模式介绍,JSP开发的两种模型(Model1/Model2)模型1使用JSP+JavaBeans将页面显示和业务逻辑处理分开JSP实现页面显示,响应请求并将结果返回给客户JavaBean对象保存数据和实现业务逻辑,模型1的架构示意图,模型1的实例(详细),按照模型1编写一个用户登录验证的程序分析页面:login.html:登录主页面;loginerr.jsp:登录错误页面welcome.jsp:登录成功页面loginchk.jsp:创建数据对象,保存用户登录信息;调用方法进行验证;验证通过,转发至welcome.jsp,否则loginerr.jsp,请求重新登录,数据保存和处理UserBean.java:保存用户登录信息,向JSP页面传递信息;UserCheckBean.java:对用户名和密码进行验证;完成登录验证功能的主要业务逻辑;,UserBean.java,publicclassUserBeanprivateStringname;privateStringpassword;,UserCheck,publicclassUserCheckBeanprotectedUserBeanuser;publicUserCheckBean(UserBeanuser)this.user=user;.publicbooleanvalidate()Stringname=user.getName();Stringpassword=user.getPassword();/实际应用中,你应该查询数据库,验证用户名和密码。if(张三.equals(name),loginchk.jsp,模型1分析,优点:实现了页面显示与业务逻辑的分离缺点需要在JSP页面控制流程转向并且调用JavaBean代码业务逻辑复杂时,JSP编写变得复杂总结:简单的小型应用,可以使用,1.MVC模式介绍,模型2将模型1中JSP嵌入的流程控制和部分逻辑处理代码提取至一个单独的角色:控制器模型2是MVC架构模式在WEB开发中的应用,1.MVC模式介绍,MVC是一种设计模式,由Trygve为发展SmallTalk在1978年提出的,出现在GUI设计中。MVC按功能对各种对象进行分割,目的是为了将对象的耦合程度降至最低。,1.MVC模式介绍,MVC是一种通过3个不同部分构造一个软件或组件的理想办法:模型(Model)封装了最核心的功能,用于存储数据以及处理用户请求的业务逻辑。视图(View)系统和用户交互的界面,从模型那获得数据并表现数据,同时将用户请求通知通知器。控制器(Controller)扮演调度者的角色,即控制器根据视图提出的请求判断将请求和数据交给那个模型处理,处理后的有关结果交给哪个视图更新显示,2.JSP中的MVC模式,模型(Model):一个或多个JavaBean对象,用于存储数据和处理数据;视图(View):一个或多个JSP页面,为模型提供数据显示,JSP页面主要使用HTML标记和JavaBean标记来显示数据。控制器(Controller):一个或多个Servlet对象,根据视图提交的请求进行控制,生成JavaBean实例输出给JSP页面.,模型2的架构示意图,模型2的实例,按照模型2的架构重写用户登录验证程序分析:login2.html:登录主页面;由ControllerServlet来接收请求ControllerServlet.java:接收用户登录请求信息,调用JavaBean组件对其进行验证,并根据结果调用JSP页面返回客户端,login2.html,用户名:密码:,ControllerServlet.java,Stringaction=request.getParameter(action);/验证请求合法性if(!isValidated(request),ControllerServlet.java,if(login.equals(action)UserBeanuser=newUserBean();user.setName(request.getParameter(name);user.setPassword(request.getParameter(password);UserCheckBeanuc=newUserCheckBean(user);if(uc.validate(),3.模型的生命周期与视图更新,由Servlet负责创建JavaBean,并将JSP页面发送的相关数据存储到JavaBean中Servlet请求的某个JSP页面显示JavaBean的数据,3.1request周期的JavaBean,用CreateJavaBeanClass类的某个构造方法创建Javabean对象,例如:CreateJavaBeanClassbean=newCreateJavaBeanClass();将所创建的JavaBean对象存放到HttpServletRequest对象request中,并指定查找该JavaBean的关键字,例如:request.setAttribute(keyWord,bean);,视图更新,Servlet请求JSP页面的代码RequestDispatcherdis=request.getRequestDispatcher(“/show.jsp”)dis.forward(request,reponse);JSP页面使用如下标记获得Servlet所创建的JavaBean的引用:显示具体数据:jsp:getPropertyname=keyWordproperty=“JavaBean的变量”,3.2session周期的JavaBean,用CreateJavabeanClass类的某个构造方法创建JavaBean对象,例如:CreateJavaBeanClassbean=newCreateJavaBeanClass();将所创建的JavaBean对象存放到HttpServletSession对象session中,并指定查找该JavaBean的关键字,例如:HttpSessionsession=request.getSession(true);session.setAttribute(keyWord,bean);,视图更新,JSP页面使用如下标记获得Servlet所创建的JavaBean的引用:,3.3application周期的JavaBean,用CreateJavaBeanClass类的某个构造方法创建JavaBean对象,例如CreateJavaBeanClassbean=newCreateJavaBeanClass();Servlet使用getServletContext()方法返回服务器创建的ServletContext对象的引用,将所创建的JavaBean对象存放到ServletContext对象中,并指定查找该JavaBean的关键字,例如:getServletContext().setAttribute(keyWord,bean);,视图更新,JSP页面使用如下标记获得Servlet所创建的JavaBean的引用:,实例,计算三角形面积四则运算查询数据库,计算三角形面积,题目:输入三角形三条边的长度,计算并显示三角形的面积。设计分析:界面JSP:输入三条边(input.jsp),显示三角形面积(show.jsp)模型JavaBean:(Triangle.java)判断三条边是否能组成三角形,计算三角形面积控制器Servlet:从input.jsp接收三条边输入的数据,创建响应的JavaBean实例,验证输入合法性后再计算三角形面积结果发给show.jsp思考:如果输入比较复杂,验证合法性工作怎么处理比较好?(从功能上考虑),Triangle.java,publicclassTriangledoublesideA,sideB,sideC;/三角形三边doublearea;/面积booleanisTriangle;/是否构成一个三角形,Triangle.java,/*计算三角形面积,如果可以构成三角形,返回面积,否则返回0*/publicdoublegetArea()returnArea;/*判断三边是否构成一个三角形*/publicbooleangetIsTriangle();returnisTriangle;,HandleData.java,publicvoiddoPost()Triangletri=newTriangle();/创建Javabean对象request.setAttribute(triangle,tri);/将tri存储到HttpServletRequest对象中。/获取三边的值并存放在tri对象中tri.getArea();/调用getArea()方法计算三角形面积RequestDispatcherdispatcher=request.getRequestDispatcher(/show.jsp);dispatcher.forward(request,response);/请求show.jsp显示tri中的数据,show.jsp,三角形的三边是:边A:边B:,练习,将P92页第五章猜数游戏改成MVC模式,四则运算,题目:计算两个数的四则运算分析视图:输入两个数和运算符号页面(inputNumber.jsp)显示计算结果页面(showResult.jsp)模型:存储运算数、符号、计算运算结果并返回(ComputerBean.java)控制器:获取用户输入,存放于相应的javaBean中,获取结果并返回给显示页面,查询数据库,题目:选择一个数据库的表,分页显示表的记录。分析设计:页面:选择数据库、表、分页显示页数(choiceDatabase.jsp)显示数据库表的记录(showRecord.jsp)控制器:接收用户数据,创建相应的bean存放数据中,获取分页显示结果发送给showRecord.jsp模型:showRecordPage.java将查询的结果进行分页显示结果,Database.java,根据数据库、表返回查询结果。,MVC模式的今天,Structs:Apache软件基金下Jakarta项目的一部分。Struts框架的主要架构设计和开发者是CraigR.McClanahanWebwork其他框架SpringHibernateAjax:AsynchronousJavaScriptandXML,测验,编写一个Servlet,简单的显示“欢迎您访问本网站”的Servlet(注意中文显示),保存为helloworld.java创建Servlet的类是tom.jiafei,应该如何配置它才能运行?,练习题5,不同作用范围的JavaBean的生命周期有什么不同?作为一个Java类,JavaBean一般需要符合什么条件?在JSP页面使用bean的标记是?其中涉及的三
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年福建供电服务公司招聘笔试模拟试卷(含答案详解)
- 2025年河南省上蔡第一高级中学招聘教师30人模拟试卷及参考答案详解1套
- 2025年济宁金乡县事业单位公开招聘工作人员(教育类)(39人)考前自测高频考点模拟试题及1套参考答案详解
- 2025贵州护理职业技术学院第十三届贵州人才博览会引才17人模拟试卷及答案详解(有一套)
- 2025年4月贵州遵义市习水县招聘城镇公益性岗位人员19人考前自测高频考点模拟试题及一套完整答案详解
- 2025年滁州城市职业学院引进高层次人才5人考前自测高频考点模拟试题及答案详解(典优)
- 2025春季内蒙古包头市第四医院人才引进9人考前自测高频考点模拟试题及答案详解(全优)
- 2025河北沧州孟村饶安高级中学招聘1人考前自测高频考点模拟试题及一套完整答案详解
- 2025年“才聚齐鲁成就未来”山东发展投资控股集团有限公司招聘笔试题库历年考点版附带答案详解
- 2025年甘肃庆阳华池县事业单位选调工作人员考前自测高频考点模拟试题及答案详解(名校卷)
- 停车场突发事件应急处理预案
- 腹壁切口疝课件
- 《人工神经网络设计 》 课件 第3、4章 感知器;径向基函数神经网络
- 幼儿园培训返岗汇报
- 岩土钻掘工程学课件
- 北京市2025学年高二(上)第一次普通高中学业水平合格性考试物理试题(原卷版)
- 第九章 统计 单元测试(含解析)-2024-2025学年高一下学期数学人教A版(2019)必修第二册
- T-CDHA 20-2024 T-CAR 20-2024 供热碳排放核算和碳排放责任分摊方法
- 2025上半年信息系统项目管理师(高级软考)综合知识真题及解析
- 呼吸衰竭护理疑难病例讨论
- 熠星创新创业大赛
评论
0/150
提交评论