首页 > 代码库 > MVC原理

MVC原理

*********************************写于2014年8月6日*************************************************************************

        最近一直在开发一个OA系统,用到了Struts2框架,逐渐对MVC原理有了一丁点理解。下面在今天写下我的那一丁点的理解。

        回想起以前自己学习java web的顺序,最早学的是HTML+CSS+Javascript,这些有了一点了解后,马上就进入了Servlet,之后就是JSP。

由于当时看了很多书,都说JSP是简化了的Servlet。所以我抱着不用Servlet的态度,单纯使用JSP,开发了一个很简陋的网站。

         在开发的过程中,我逐渐意识到问题。单纯使用JSP开发,很多java脚本写在了HTML文件里,这样造成了很难阅读代码。而且代码大量

重复,写一些功能,可能就需要很大的代码。后来我了解到JavaBean,开始尝试用JSP+JavaBean的开发方式,这样可以把很多与数据库访问的

代码写在了Java文件里。但依然还有很多代码在JSP里。再后来,那个被遗弃的Servlet就被捡了起来,开始了JSP+Servlet+JavaBean的简易的

MVC开发模式。

从JSP+Servlet+JavaBean的MVC架构看:


通过这样的方式,JSP页面上的Java脚本基本只留下以集合类,Servlet API 和Java对象类,并且这些可以使用EL和JSTL来简写,最终使得JSP容易维护。页面,业务逻辑和数据处理可以分开处理。

这样一来,系统的维护性增强了,代价是是需要些很多额外的代码。如在JSP页面就很容易实现的代码,需要写个实体类,写个DAO类,写个Servlet,似乎整个开发过程变复杂了。


后来MVC框架出现了,可以使MVC的开发加快了,同时也可以使人们标准的使用MVC进行开发。

常见的MVC框架有:JSF,Struts2 , Struts1,Spring MVC。

因为最近使用的都是Struts2,所以我用Struts2解释一个MVC框架。


Struts2的大概示意图:




总结MVC的设计思想。

~综:

1,MVC架构的目的是提高系统的后期维护和拓展性,这样一来,就会牺牲了系统的性能和开发难度,就像写一个Hello World的页面,使用MVC你会觉得特别麻烦,所以,MVC的设计不适合所有的开发,

需要按系统的规模和开发难度,后期维护等方面考虑是否适合MVC架构。

2,MVC架构的开发特点:页面采用全标签和表达式,如EL和JSTL,Struts2的标签和Ognl表达式,所以页面维护性好。控制器则主要负责请求处理,把数据交给业务逻辑,然后把处理好的数据相应到页面。


上面是我对MVC架构的一些愚见,对于MVC现在还在学习当中,相信对MVC还会有更深的理解。本文可能会有很多错误,希望大家可以指出,谢谢。