MVC设计模式看Web编程

MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:

Model(模型)表示应用程序核心(比如数据库记录列表),主要面向于开发人员的连接图形和控制器操作。

View(视图)显示数据(数据库记录),主要是面向视图界面。

Controller(控制器)处理输入(写入数据库记录),负责控制和数据的显示操作。

最为一种编程的模式,MVC有着很多的优势和亮点,不过同时也有一些让人嗤之以鼻的漏洞。今天就来结合最近所学的JSP和Servlet细细探索以下优略。

M:Model ,模型:一个功能。用JavaBean实现。

V:View,视图: 用于展示、以及与用户交互。使用html js css jsp jquery等前端技术实现

C:Controller,控制器 :接受请求,将请求跳转到模型进行处理;模型处理完毕后,再将处理的结果返回给请求处 。可以用jsp实现,但是一般建议使用Servlet实现控制器。

思维导图

之前提到了JavaBean,那么什么是JavaBean呢

例如我们将写好的jsp中登录操作的代码转移到了src/LoginDao.java;其中LoginDao类 就称之为JavaBean。

JavaBean的作用:

a.减轻的jsp复杂度

b.提高代码复用(以后任何地方的登录操作,都可以通过调用LoginDao实现)

JavaBean(就是一个Java类)的定义:满足一下2点 ,就可以称为JavaBean

a.public 修饰的类 ,public 无参构造

b.所有属性(如果有) 都是private,并且提供set/get (如果boolean 则get可以替换成is)

使用层面,Java分为2大类:

a.封装业务逻辑的JavaBean

b.封装数据的JavaBean

封装数据的JavaBean 对应于数据库中的一张表而封装业务逻辑的JavaBean 用于操作 一个封装数据的JavaBean

可以发现,JavaBean可以简化 代码(jsp->jsp+java)、提供代码复用。

再者,对于控制器,一般都为Servlet,那么什么是Servlet呢

Servlet 是在服务器上运行的小程序。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

*Servlet生命周期:5个阶段 *

1.加载
2.初始化: init(),该方法会在Servlet被加载并实例化的以后执行
4.服务  :service() ->doGet()  doPost
4.销毁  :destroy(),  Servlet被系统回收时执行
5.卸载

Servlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后:

①Web服务器首先检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第④步,否则,执行第②步。
②装载并创建该Servlet的一个实例对象。 
③调用Servlet实例对象的init()方法。
④创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。
⑤WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。 

由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用元素和元素完成。

元素用于注册Servlet,它包含有两个主要的子元素:

,分别用于设置Servlet的注册名称和Servlet的完整类名。

一个元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:,分别用于指定Servlet的注册名称和Servlet的对外访问路径。

以上是基于2.5的操作方式,在3.0中改变为在调用的方法上方出现@()字段,且在括号中填入的内容即可。

最后再来谈谈在设计中对应的MVC的优缺点。

###优点

耦合性低:

视图层和业务层分离,允许更改视图层代码而不用重新编译模型和控制器代码,因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。

重用性高:

MVC模式允许使用各种不同样式的视图来访问同一个服务器端的代码,因为多个视图能共享一个模型。

生命周期成本低

MVC使开发和维护用户接口的技术含量降低。

部署快

使用MVC模式使开发时间得到相当大的缩减。

可维护性高

分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。

###缺点

没有明确的定义

完全理解MVC并不是很容易。使用MVC需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。同时由于模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难。每个构件在使用之前都需要经过彻底的测试。

不适合小型,中等规模的应用程序

花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。

增加系统结构和实现的复杂性

对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。

视图与控制器间的过于紧密的连接

视图与控制器是相互分离,但却是联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。

感谢您的鼓励.如果喜欢可以送我一包辣条。