学习MVC模式java
1、MVC简介程序员
MVC是Model-View-Controller的简称,即模型-视图-控制器。MVC是一种设计模式,它把应用程序分红三个核心模块:模型、视图、控制器,它们各自处理本身的任务。数据库
一、模型(Model)编程
a、模型是应用程序的主体部分,模型表示业务数据和业务逻辑。后端
b、一个模型能为多个视图提供数据。设计模式
c、因为应用于模型的代码只需写一次就能够被多个视图重用,因此提升了代码的可重用性。浏览器
二、视图(View):服务器
简单来讲就是在页面上填写java代码实现显示。框架
详细来讲视图是用户看到并与之交互的界面,做用有:jsp
a、视图向用户显示相关的数据
b、接受用户的输入
c、不进行任何实际的业务处理
三、控制器(Controller)
a、控制器接受用户的输入并调用模型和视图去完成用户的需求。
b、控制器接受并决定调用哪一个模型组件去处理请求,而后决定调用哪一个视图来显示模型处理返回的数据。
受理请求--->获取请求参数--->调用DAO方法--->可能会把DAO方法的放绘制放入request中--->转发或重定向页面
用实际的流程来讲,至关于一个a.jsp向servlet发送一个get请求要求全部的学生信息,而后servlet的doGet()方调用模型层dao里的getAll()
方法返回学生的List对象,把获得的对象放入request中,而后请求转发到b.jsp,b.jsp对刚才转发过来的数据进行遍历,显示。dao对象固然是调用getAll()方法,把值返回List.
最后,用流程图来总结一下:
2、Java Web应用程序的主要组件
一、Servlet
Servlet是用Java语言编写的,它是一个Java类。于是Servlet遵照全部Java语言的语法规则,而且它能够调用通常Java程序能够调用的系统包。
Servlet是在服务器端运行的。它编译后的“.class”文件被服务器端调用和执行。Web服务器使用该class文件去处理浏览器请求,并将处理的结果返回到客户端。
Servlet的主要功能是用来接受、处理客户端请求,并把处理结果返回到客户端显示。其过程以下所述。
a、客户端把请求送到Servlet处理
b、Servlet处理请求
c、Servlet把请求的结果返回到客户端显示
二、JavaBean
JavaBean组件就是一些遵循特定接口格式的Java类。这种接口格式对Java类的方法命名、底层行为、继承与实现等有特定的要求。在Java Web开发中,JavaBean每每用来封装程序的业务逻辑,它们是能够重用的组件。经过使用JavaBean,JSP文件中的Java脚本能够大大地减小,从而使JSP更容易维护。
JavaBean在Java Web开发中主要用来处理业务逻辑。JSP或者Servlet能够调用JavaBean去处理复杂的操做。
JavaBean的属性用于表示其内部状态。在Java Web开发中,其属性主要用来存储中间数据。例如,能够用从数据库中取出的数据来设置JavaBean的属性。这样JSP文件就能够在须要时从JavaBean中把这些值取出,而后在客户端将其显示出来。
咱们经常使用<jsp:useBean>这个标签在JSP文件中使用JavaBean。在JavaBean中,可使用JDBC进行数据库操做,好比链接数据库、查询数据库、向数据库中插入数据等。在JSP中使用Java脚本虽然也能够进行数据库操做,可是这样会形成页面过于复杂、臃肿,维护起来很是不方便,这种缺点在大型项目中更加突出。使用JavaBean操做数据库,而后把操做的结果返回给JSP页面去显示,这样就减轻了JSP的负担,使其更专一于页面显示。
3、Java Web解决方案(开发方法)
JSP页面编程
JSP+JavaBean设计模式
JSP+Servlet设计模式
JSP+Servlet+JavaBean设计模式
4、经常使用的Java Web的MVC框架
一、Spring MVC
它的设计是围绕DispatcherServlet展开的,DispatcherServlet负责将请求派发到特定的handler。核心是 DispatcherServlet,它的做用是将请求分发给不一样的后端处理器(controller)。
二、Struts
它是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。Struts把Servlet、JSP、自定义标签和信息资源整合到一个统一的框架中,开发人员利用其进行开发时不用再本身编码实现全套MVC模式,极大的节省了时间。Struts就是MVC中的C的角色,由于它主要是负责action,处理各类请求。
5、MVC的优势
一、低耦合性
视图层和业务层分离,这样就容许更改视图层代码而不用从新编译模型和控制器代码,一样,一个应用的业务流程或者业务规则的改变只须要改动MVC的模型层便可。由于模型与控制器和视图相分离,因此很容易改变应用程序的数据层和业务规则。
二、高可用性和适用性
随着技术的不断进步,如今须要用愈来愈多的方式来访问应用程序。MVC模式容许你使用各类不一样样式的视图来访问同一个服务器端的代码。它包括任何WEB(HTTP)浏览器或者无线浏览器(wap),好比,用户能够经过电脑也可经过手机来订购某样产品,虽然订购的方式不同,但处理订购产品的方式是同样的。因为模型返回的数据没有进行格式化,因此一样的构件能被不一样的界面使用。例如,不少数据可能用HTML来表示,可是也有可能用WAP来表示,而这些表示所须要的命令是改变视图层的实现方式,而控制层和模型层无需作任何改变。
三、较低的生命周期成本
MVC使下降开发和维护用户接口的技术含量成为可能。
四、快速的部署
使用MVC模式使开发时间获得至关大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。
五、可维护性
分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。
六、有利于软件工程化管理
因为不一样的层各司其职,每一层不一样的应用具备某些相同的特征,有利于经过工程化、工具化管理程序代码。
6、MVC的缺点
一、MVC的缺点是因为它没有明确的定义,因此彻底理解MVC并非很容易。使用MVC须要精心的计划,因为它的内部原理比较复杂,因此须要花费一些时间去思考。
二、你将不得不花费至关可观的时间去考虑如何将MVC运用到你的应用程序,同时因为模型和视图要严格的分离,这样也给调试应用程序带来了必定的困难。每一个构件在使用以前都须要通过完全的测试。一旦你的构件通过了测试,你就能够毫无顾忌的重用它们了。
三、根据开发者经验,因为开发者将一个应用程序分红了三个部件,因此使用MVC同时也意味着你将要管理比之前更多的文件,这一点是显而易见的。这样好像咱们的工做量增长了,可是请记住这比起它所能带给咱们的好处是不值一提。
四、MVC并不适合小型甚至中等规模的应用程序,花费大量时间将MVC应用到规模并非很大的应用程序一般会得不偿失。
五、MVC设计模式是一个很好建立软件的途径,它所提倡的一些原则,像内容和显示互相分离可能比较好理解。可是若是你要隔离模型、视图和控制器的构件,你可能须要从新思考你的应用程序,尤为是应用程序的构架方面。若是你肯接受MVC,而且有能力应付它所带来的额外的工做和复杂性,MVC将会使你的软件在健壮性,代码重用和结构方面上一个新的台阶。
其实对于我我的来讲,对于MVC并非很熟练,甚至说不是很了解。由于我更多的是从网上了解到这些知识,目前并无很好的应用到我的的做业和项目当,因此如今更多的是了解,为以后的使用打下基础。了解更多的知识,有利于提高咱们的我的能力。