第8章Struts和MVC设计模式.ppt
《第8章Struts和MVC设计模式.ppt》由会员分享,可在线阅读,更多相关《第8章Struts和MVC设计模式.ppt(79页珍藏版)》请在课桌文档上搜索。
1、第8章 Struts和MVC设计模式,第8章 Struts和MVC设计模式,8.1 MVC框架简介8.2 用Struts2实现MVC设计模式8.3 Struts的Web应用开发实例 8.4 小结 8.5 习题,8.1 MVC框架简介,在Web应用开发中,MVC框架应用非常广泛,特别是在大型的、比较复杂的项目中。8.1.1 MVC框架是什么 8.1.2为什么要用MVC 8.1.3 MVC的实现,8.1.1 MVC框架是什么,基于Java的动态Web开发有两种常用的开发模型:Model1和Model2。Model1在Model 1模式下,整个Web应用几乎全部由JSP页面组成,JSP页面接收处理客
2、户端请求,对请求处理后直接做出响应。用少量的JavaBean来处理数据库连接、数据库访问等操作。,Model 1模式的实现比较简单,适用于快速开发小规模项目。但从工程化的角度看,它的局限性非常明显:JSP页面身兼View和Controller两种角色,将控制逻辑和表现逻辑混杂在一起,从而导致代码的重用性非常低,增加了应用的扩展性和维护的难度。,Model2,Model2实现了业务逻辑、显示逻辑和控制逻辑的分离,即是基于MVC的框架。MVC框架即模型视图控制器(ModelViewController)设计模式。其中,M代表Model,V代表View,C代表ControllerMVC的目的是增加代
3、码的可重用性,减少数据描述和应用操作的可耦合度,并提高代码的可读性。同时,也可以使软件的可维护性、可扩展性、可修复性、灵活性以及封装性大大提高。,在Model 2模式下,模型(Model)由JavaBean 充当,视图(View)由JSP页面充当,而控制器(Controller)则由Servlet充当。,MVC包括以下三部分:,视图:视图是应用程序的表示层,代表用户交互界面。在Web应用中,交互界面可能是HTML界面,也有可能是XML界面、Applet界面或其他界面。模型:模型是应用程序的业务处理层,负责所有业务流程的处理和业务规则的制定。模型处理由控制器发来的视图的请求数据,并将最终的处理结
4、果返回给视图。控制器:控制器的作用实际上就是一个分发器,负责决定将请求数据转发给什么样的模型组件,以及决定选择什么样的视图来显示模型返回的数据。,一个基于MVC的应用程序对用户请求的处理过程:,(1)终端用户通过应用程序发出了一个请求,该请求被转发给控制器。(2)控制器收到该请求后,检查该请求然后决定用什么样的业务逻辑来处理该请求,这时控制器会将该请求转发给一个相应的业务组件去处理。(3)模型中包含处理该用户请求的所有业务组件,并且也执行用户所需要的全部数据存取。代表终端用户查询检索出的任何数据都被打包返回给控制器。(4)控制器接收从模型返回的数据,并选择显示这些数据的相应的视图,然后将视图返
5、回给用户。MVC模式适合大型项目的开发,是组件式的开发,但开发起来相对Model1复杂,步骤较多。,8.1.2为什么要用MVC,MVC框架的优点如下:有利于程序的维护和功能的扩展。有利于开发中的分工。有利于组件的重用。,8.1.3 MVC的实现,【例8.1】MVC的实现。本节采用JSPServletJavaBean技术开发一个体重指数测量程序。本例是一个根据身高和体重数据来衡量体重状况的程序。程序包含4个文件,分别是:view_Table.jspcontroller_Servlet.javamodel_Bean.javaview_Result.jsp,对身高和体重数据的处理计算是在模型层实现的
6、,其中运用的业务规则是世界卫生组织拟定的体重状况的判断标准。体重指数(BMI)的计算公式是:体重指数(BMI)=体重(kg)/身高(米)的平方世界卫生组织拟定的BMI指数与体重状况的对应关系是:BMI在18.525 体重在正常范围BMI大于25小于30 体重状况为超重BMI大于30 体重状况为较肥胖BMI小于18.5 体重状况为偏瘦,(1)Model层的实现,Model(模型)层是软件中的核心模块,负责实现软件所有的业务逻辑,所有的数据处理都是在这里进行的。Model层用JavaBean来实现。类model_Bean是Model层的具体实现。新建一个类model_Bean,文件名为model_
7、Bean.java,目录名为WEB-INF/src,存放在mvc_Test包中。,Model_Bean.java文件源代码如下:package mvc_Test;public class model_Bean/构造函数public model_Bean()/私有成员private String result;private String bmi;/体重指数/公有成员public void setBmi(String w,String h)/BMI体重指数double wt=Double.parseDouble(w);/将字符串类型的体重数据转换成double类型double ht=Double
8、.parseDouble(h);/将字符串类型的身高数据转换成double类型double bmit=wt/(ht*ht);/按给定公式计算BMI体重指数,bmit*=10;int bmitt=(int)bmit;bmit=(double)bmitt/10;bmi=String.valueOf(bmit);/通过在浮点型和整型之间,先后进行相互的强制转换,使BMI指数只保留一位小数。public String getBmi()return bmi;public void setResult(String bmi)/根据BMI指数大小判定体型double bmit=Double.parseDou
9、ble(bmi);if(bmit18.5,else if(bmit25/将处理结果返回控制层组件controller_Servlet 模型层负责对其接收的身高和体重数据进行处理,这些数据是视图层以表单的方式采集而来的,接下来将给出视图层的代码。,(2)View层的实现 View(视图)层提供了一个表单以采集用户的身高和体重数据。view_Table.jsp文件源代码如下:世界卫生组织标准体重测定 看看您的体重状态如何,  视图层采集的数据提交给控制层,控制层转发给模型层处理,模型层接收控制层转发来的数据并对数据进行处理,处理结 果返回给控制层。,(3)Control层的实现 控制层的具
10、体功能是向模型层转发请求数据以及回收数据处理的结果,同时生成结果显示页面,返回给用户。Control层用Servlet实现。首先新建一个类controller_Servlet,对应文件名为controller_Servlet.java,目录名为WEB-INF/src,放在包mvcTest中。controller_Servlet.java源代码如下:package mvc_Test;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;import mvc_Test.model_Bean;,public class
11、 controller_Servlet extends HttpServlet public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException/抛出接受请求的过程中的异常信息 doPost(request,response);public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletExceptio
12、n/抛出发送信息的过程中异常信息 String weight=request.getParameter(weight);/获取表单中体重的字符串信息 String height=request.getParameter(height);/获取表单中身高的字符串信息 model_Bean Pro=new model_Bean();/建立一个model_Bean的实例Pro,Pro.setBmi(weight,height);String BMI=Pro.getBmi();Pro.setResult(BMI);String result=Pro.getResult();/通过建立一个model_B
13、ean的实例Pro,调用模型层组件model_Bean处理身高和体重信息 response.setContentType(text/html;charset=gb2312);/指定以中文字符集显示返回信息 request.setAttribute(result,result);request.setAttribute(BMI,BMI);/使用RequestDispatcher 转发至显示视图页面/view_Result.jsp RequestDispatcher requestDispatcher=request.getRequestDispatcher(/view_Result.jsp);/
14、获得 RequestDispatcher对象 requestDispatcher.forward(request,response);/转发,显示测试结果的页面view_Result.jsp文件源代码如下:);out.println();out.println();out.println(您的BMI体重指数为:+BMI+);out.println(result);out.println();%,注意:编译controller_Servlet.java文件时,需要将Tomcat安装目录下的commonlib目录下的servlet-api.jar,添加到JDK安装目录下的jdk1.6.0jreli
15、bext目录下面,否则会编译失败。因为文件所包含的软件包 javax.servlet在Web服务器中才有,JDK中并没有。也可以按照第三章例3.1所介绍的方法配置环境变量。然后新建一个配置文件web.xml,放在目录WEB-INF下。视图组件view_Table.jsp需要配置文件提供路径才能找到控制组件controller_Servlet.java,这些需要在web.xml中配置。,8.1.3 MVC的实现,web.xml源代码如下:control mvc_Test.controller_Servlet control/controller_Servlet,8.1.3 MVC的实现,(4)将
16、本例所有文件及文件夹放在MVC文件夹中,并放在Tomcat安装目录下的webapps文件夹下,启动Tomcat,打开IE浏览器,在地址栏中输入地址:http:/localhost:8080/MVC/view_Table.jsp,运行结果如图8.3所示。(5)在表单中输入数据,单击提交按钮,运行结果如图8.4所示。图8.3 用户输入界面 图8.4 测试结果页面,8.2 用Struts2实现MVC设计模式,传统的MVC应用开发非常复杂,使用Struts控制器可以大大简化MVC应用程序的开发,尤其是大型的应用软件项目的开发。Struts作为一个开放源代码的应用框架,在最近几年得到了飞速的发展,在JS
17、P Web应用开发中应用得非常广泛。8.2.1 Struts概述 8.2.2 Struts2的安装与测试8.2.3 Struts2的配置8.2.4 Struts 2的常用标签8.2.5 Struts 2的Action,8.2.1 Struts概述,1.什么是Struts Struts是一个用于简化MVC框架(Framework)开发的Web应用框架,用于快速开发Java Web应用。2.Struts2简介 Struts2的诞生源于OpenSynphony的著名Web框架WebWork,和Struts1一样,WebWork也是主流的Web框架之一。WebWork的技术先进程度要优于Struts1
18、,但Struts1却具有更广泛的客户群。2005年,双方决定合作开发下一代的Web框架,Struts2于是诞生。从技术层面讲,Struts2采用了WebWork的核心技术而与Struts1完全不兼容。,8.2.1 Struts概述,3.Struts1与Struts2的对比 根据Struts2开发组的文章可以得知,Struts2与Struts1的不同之处如表8.1所示。表8.1 Struts2与Struts1的不同之处,表8.1 Struts2与Struts1的不同之处,8.2.2 Struts2的安装与测试,(1)安装Struts2需要的软件在安装Struts2前必须安装以下两个软件:JDK1
19、.4以上版本,此处使用最新版的JDK6(或叫JDK1.6)。Servlet Container,此处使用Tomcat5.5。(2)下载Struts安装包 Struts最新版安装包Struts2.1.2可在http:/struts.apache.org/download.cgi#struts212上免费下载。下载页面如图8.3所示。,图8.3 Struts2下载页面,8.2.2 Struts2的安装与测试,选择下载Full Distribution版本,Struts 2安装包只是一个简单的压缩文件,解压即可。使用解压软件解压后,目录结构如图8.5所示。图8.5 Struts目录结构,8.2.2
20、Struts2的安装与测试,该目录结构内容如下:apps:该文件夹下包含了基于Struts 2的示例应用,这些示例应用对于学习者是非常有用的资料。docs:该文件夹下包含了Struts 2的相关文档,包括Struts 2的快速入门、Struts 2的文档,以及API文档等内容。backport:该文件夹下包含了让Struts 2支持JDK 1.4的JAR文件。lib:该文件夹下包含了Struts 2框架的核心类库,以及Struts 2的第三方插件类库。src:该文件夹下包含了Struts 2框架的全部源代码。,8.2.2 Struts2的安装与测试,(3)安装Struts2 Struts 2的
21、安装是非常简单的,只是将JAR文件复制到相应目录即可。在正确安装好JDK和Tomcat后,把lib目录下的相关JAR文件拷贝到Web应用的lib目录中,同时修改Web应用的web.xml文件,添加Struts 2的配置。一般普通的Web应用目录结构如下:Web应用名称(如Bank):|-WEB-INF|classes|lib|web.xml|index.jsp,8.2.2 Struts2的安装与测试,将Struts2解压后的lib文件夹下struts2-core-2.1.2.jarxwork-2.1.1jarognl-2.6.11.jarcommons-logging-1.0.4.jarcom
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Struts MVC 设计 模式
链接地址:https://www.desk33.com/p-751284.html