您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 第9章 基于Servlet的MVC模式
第8章基于Servlet的MVC模式概述MVC,Model-View-Controller,模型-视图-控制器MVC模式的核心思想是有效地组合“视图”、“模型”和“控制器”。掌握MVC模式对于设计合理的Web应用和Web框架,都有着十分重要的意义。1.MVC模式介绍MVC是一种通过3个不同部分构造一个软件或组件的理想办法:模型(Model)——用于存储数据的对象。视图(View)——为模型提供数据显示的对象。控制器(Controller)——负责具体的业务逻辑操作,即控制器根据视图提出的要求对数据做出处理,并将有关结果存储到模型中,同时负责让模型和视图进行必要的交互,当模型中的数据变化时,让视图更新显示。2.JSP中的MVC模式模型(Model):一个或多个JavaBean对象,用于存储数据,JavaBean主要提供简单的setXXX()方法和getXXX()方法,在这些方法中不涉及对数据的具体处理细节。视图(View):一个或多个JSP页面,为模型提供数据显示,JSP页面主要使用HTML标记和JavaBean标记来显示数据。控制器(Controller):一个或多个Servlet对象,根据视图提交的要求进行数据处理操作,并将有关的结果存储到JavaBean中,然后Servlet使用重定向方式请求视图中的某个JSP页面更新显示。MVC模式结构图视图JSP控制器servlet模型bean数据:数据库提交处理数据Form表单请求显示数据getProperty读取存储数据setXxxJSP+Javabean模型与MVC模型JSP+Javabean模型:由JSP页面通过Javabean标记jsp:useBean创建Javabean对象。jsp:useBeanid=给bean起的名字class=创建bean的类scope=bean有效范围/MVC模型:由控制器servlet调用构造方法创建Javabean对象,并将有关数据存储到Javabean对象中。3.request周期的JavaBean(1)Javabean对象的创建①用Bean类的某个构造方法创建bean对象,例如:Bean类bean=newBean类的构造方法();②将所创建的bean对象存放到HttpServletRequest对象request中,并指定查找该JavaBean的关键字,例如:request.setAttribute(keyWord,bean);(2)视图更新(即:JSP页面更新显示)Servlet请求一个JSP页面show.jsp的代码(转发)①RequestDispatcherdispatcher=request.getRequestDispatcher(show.jsp);②dispatcher.forward(request,response);JSP页面使用如下标记调用Servlet所创建的JavaBean对象:jsp:useBeanid=keyWordtype=flower.grass.CreateJavaBeanClassscope=request/JSP页面使用以下标记显示bean对象中的数据:jsp:getPropertyname=“keyWord”property=“bean的变量/开发MVC应用程序的步骤:1.编写模型(Javabean):?.java;2.编译?.java,得到?.class,把?.class复制到G:\JSP\lizi\ch8\WEB-INF\classes\user\yourbean中;3.编写视图(JSP):提交数据给servlet的JSP,从bean中读取显示数据的JSP;4.编写控制器(servlet):*.java;5.编译*.java,得到*.class,把*.class复制到G:\JSP\lizi\ch8\WEB-INF\classes\user\yourservlet中;6.在web.xml文件中添加servlet对象P245-250例子:计算三角形和梯形的面积输入数据视图JSP控制器servlet模型bean提交处理数据Form表单请求显示数据getProperty存储数据setXxx显示数据视图JSP(调用bean对象)(创建bean对象)M模型(Javabean):Area.java,编写setXxx和getXxx方法,不涉及对数据的处理。Bean类Area.class保存到特定目录:Web服务目录\WEB-INF\classes\user\yourbeanV视图(JSP):输入数据视图:inputData.jsp显示数据视图:showResult.jspC控制器(servlet):HandleArea.java,使用doPost方法计算三角形的面积,使用doGet方法计算梯形的面积。Servlet类HandleArea.class保存到特定目录:Web服务目录\WEB-INF\classes\user\yourservlet在web.xml文件中添加servlet对象模型(Javabean):Area.java属性:doublea,b,c,area;Stringmess;方法:7个setXxx和getXxx方法。输入数据视图(JSP):inputData.jsp使用form表单输入数据,并把数据提交给控制器(servlet)处理;显示数据视图(JSP):showResult.jsp调用bean对象:jsp:useBeanid=bean对象名type=“user.yourbean.Areascope=request/读取bean对象中的数据,并显示出来jsp:getPropertyname=“bean对象名”property=“bean属性名/控制器(servlet):HandleArea.java使用doPost方法计算三角形的面积,使用doGet方法计算梯形的面积;创建bean对象,并将其存储到request对象中;AreadataBean=newArea();//创建Javabean对象request.setAttribute(“data”,dataBean);//将dataBean存储到request对象中接收JSP页面提交的数据request.getParameter(“a)把数据存储到bean对象中dataBean.setA(a);请求显示数据视图(showResult.jsp)RequestDispatcherdispatcher=request.getRequestDispatcher(showResult.jsp);dispatcher.forward(request,response);文件的执行顺序客户端输入inputData.jsp的URL,例如:用户在inputData.jsp的表单中输入数据,并点击“”提交”按钮,提交数据给控制器(servlet)HandleArea.java。控制器(servlet)HandleArea.java,接收提交的数据,并根据提交的方式,post方式执行doPost方法计算三角形的面积,get方式执行doGet方法计算梯形的面积。控制器(servlet)HandleArea.java,把数据写入模型(Javabean)Area.java控制器(servlet)HandleArea.java请求显示数据视图(JSP)showResult.jspshowResult.jsp读取模型(Javabean)Area.java中的数据。5.session周期的JavaBean(1)Javabean对象的创建①用CreateJavabeanClass类的某个构造方法创建JavaBean对象,例如:CreateJavaBeanClassbean=newCreateJavaBeanClass();②将所创建的JavaBean对象存放到HttpServletSession对象session中,并指定查找该JavaBean的关键字,例如:HttpSessionsession=request.getSession(true);session.setAttribute(keyWord,bean);(2)视图更新Servlet请求一个JSP页面,可以使用forward转发,也可以使用sendRedirect重定向;JSP页面使用如下标记调用Servlet所创建的JavaBean对象:jsp:useBeanid=keyWordtype=flower.grass.CreateJavaBeanClassscope=“session/JSP页面使用jsp:getProperty标记显示bean对象中的数据:P250-255简单的计算器输入数据视图JSP控制器servlet模型bean提交处理数据Form表单请求显示数据getProperty存储数据setXxx显示数据视图JSPM模型(Javabean):ComputerBean.java,编写setXxx和getXxx方法,不涉及对数据的处理。Bean类ComputerBean.class保存到特定目录:Web服务目录\WEB-INF\classes\user\yourbeanV视图(JSP):输入数据视图:inputNumber.jsp显示数据视图:showResult2.jspC控制器(servlet):HandleComputer.java,计算两个数的加减乘除。Servlet类HandleComputer.class保存到特定目录:Web服务目录\WEB-INF\classes\user\yourservlet在web.xml文件中添加servlet对象6.application周期的JavaBean(1)Javabean对象的创建①用CreateJavaBeanClass类的某个构造方法创建JavaBean对象,例如:CreateJavaBeanClassbean=newCreateJavaBeanClass();②Servlet可以使用getServletContext()方法返回服务器创建的ServletContext对象的引用,将所创建的JavaBean对象存放到服务器创建的ServletContext对象中,并指定查找该JavaBean的关键字,例如:getServletContext().setAttribute(keyWord,bean);(2)视图更新Servlet请求一个JSP页面,可以使用forward转发,也可以使用sendRedirect重定向;JSP页面使用如下标记调用Servlet所创建的JavaBean对象:jsp:useBeanid=keyWordtype=flower.grass.CreateJavaBeanClassscope=“application/JSP页面使用jsp:getProperty标记显示bean对象中的数据:作业1.画出JSP中的MVC模式结构图,并分别说明各部分的功能以及相互调用关系。上机作业:1.输入三角形的三边,求面积。分别用以下5种模式实现:①.JSP②tag文件③JSP+JavaBean模式④JavaServlet⑤MVC模式:JSP+JavaBean+Servlet
本文标题:第9章 基于Servlet的MVC模式
链接地址:https://www.777doc.com/doc-3972362 .html