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

上传人:fgh****35 文档编号:252963769 上传时间:2024-11-26 格式:PPT 页数:41 大小:143KB
返回 下载 相关 举报
第8章 基于Servlet的MVC模式 (2)_第1页
第1页 / 共41页
第8章 基于Servlet的MVC模式 (2)_第2页
第2页 / 共41页
第8章 基于Servlet的MVC模式 (2)_第3页
第3页 / 共41页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,8,章,MVC,模式,课程目标,理解,MVC,模式的基本思想,视图,模型,控制器,能够运用,MVC,模式编写,Web,应用程序,引入,MVC,模式的核心思想是有效地组合“视图”、“模型”和“控制器”。,掌握,MVC,模式对于设计合理的,Web,应用框架有着十分重要的意义。,1.,MVC,模式介绍,JSP,开发的两种模型(,Model1/Model2),模型,1,使用,JSP+JavaBeans,将页面显示和业务逻辑处理分开,JSP,实现页面显示,响应请求并将结果返回给客户,JavaBean,对象保存数据和实现业务逻辑,模型,1,的架构示意图,Web,服务器,浏,览,器,JSP,JavaBeans,数据库,请求响应,模型,1,的实例(详细),按照模型,1,编写一个,用户登录验证的程序,分析,页面:,login.html,:登录主页面;,loginchk.jsp,:创建数据对象,保存用户登录信息;调用方法进行验证;验证通过,转发至,welcome.jsp,,否则,loginerr.jsp,,请求重新登录,loginerr.jsp,:登录错误页面,welcome.jsp,:登录成功页面,数据保存和处理,UserBean.java,:保存用户登录信息,向,JSP,页面传递信息;,UserCheckBean.java,:,对用户名和密码进行验证;完成登录验证功能的主要业务逻辑;,UserBean.java,public class,UserBean,private String name;,private String password;,UserCheck,public 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(name,)&1234.equals(password),return true;else ,return false;,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,的架构示意图,Web,服务器,浏,览,器,Html,JSP,(,视图,),JavaBeans,(,模型,),数据库,请求,响应,Servlet,(,控制器,),选择视图,实例化,请求,模型,2,的实例,按照模型,2,的架构重写,用户登录验证程序,分析:,login2.html,:登录主页面;由,ControllerServlet,来接收请求,ControllerServlet.java,:,接收用户登录请求信息,调用,JavaBean,组件对其进行验证,并根据结果调用,JSP,页面返回客户端,login2.html,用户名:,密码:,ControllerServlet.java,String action=,request.getParameter(action,);,/,验证请求合法性,if(,!,isValidated,(request,)&!(,login.equals(action,),gotoPage(login2.html,request,response);,return;,ControllerServlet.java,if(login.equals(action,),UserBean,user=new,UserBean,();,user.setName(request.getParameter(name,);,user.setPassword(request.getParameter(password,);,UserCheckBean,uc,=new,UserCheckBean(user,);,if(uc.validate,(),3.,模型的生命周期与视图更新,由,Servlet,负责创建,JavaBean,,并将,JSP,页面发送的相关数据存储到,JavaBean,中,将,JavaBean,实例保存到相应的对象中(,request,、,session,等),Servlet,请求的某个,JSP,页面显示,JavaBean,的数据,3.1,request,周期的,JavaBean,用,CreateJavaBeanClass,类的某个构造方法,创建,Javabean,对象,,例如:,CreateJavaBeanClass,bean=new,CreateJavaBeanClass,();,将所创建的,JavaBean,对象,存放到,HttpServletRequest,对象,request,中,并指定查找该,JavaBean,的关键字,例如:,request.setAttribute(,keyWord,bean,);,视图更新,Servlet,请求,JSP,页面的代码,RequestDispatcher,dis,=request.,getRequestDispatcher(“/show.jsp,”),dis.forward(request,reponse,);,JSP,页面使用如下标记获得,Servlet,所创建的,JavaBean,的引用,:,显示具体数据:,jsp:getProperty,name=,keyWord,property=“,JavaBean,的变量”,3.2,session,周期的,JavaBean,用,CreateJavabeanClass,类的某个构造方法,创建,JavaBean,对象,,例如:,CreateJavaBeanClass,bean=new,CreateJavaBeanClass,();,将所创建的,JavaBean,对象,存放到,HttpServletSession,对象,session,中,并指定查找该,JavaBean,的关键字,例如:,HttpSession,session=,request.getSession(true,);,session.setAttribute(,keyWord,bean,);,视图更新,JSP,页面使用如下标记,获得,Servlet,所创建的,JavaBean,的引用,:,3.3,application,周期的,JavaBean,用,CreateJavaBeanClass,类的某个构造方法,创建,JavaBean,对象,,例如,CreateJavaBeanClass,bean=new,CreateJavaBeanClass,();,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,public class Triangle,double,sideA,sideB,sideC,;/,三角形三边,double area;,/,面积,boolean,isTriangle,;,/,是否构成一个三角形,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(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,:,练习,将,P92,页第五章猜数游戏改成,MVC,模式,四则运算,题目:计算两个数的四则运算,分析,视图:输入两个数和运算符号页面(,inputNumber.jsp,)显示计算结果页面,(,showResult.jsp,),模型:存储运算数、符号、计算运算结果并返回(,ComputerBean.java,),控制器:获取用户输入,存放于相应的,javaBean,中,获取结果并返回给显示页面,查询数据库,题目:选择一个数据库的表,分页显示表的记录。,分析设计:,页面:选择数据库、表、分页显示页数,(,c
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 营销创新


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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