对于以前传统形式的开发,servlet是服务器处理请求的后端入口,其职责除了接收请求之外,还必须接收参数,处理业务逻辑,处理JDBC等一系列的任务操作。所有的压力都集中在了servlet的身上。如果遇到相对复杂的业务处理,会使servlet中的代码不具有可读性、可复用性及可维护性。
MVC思想的引入对于我们实际项目开发有了分层开发的概念,其中分为控制层,业务层及持久层,层与层之各司其职,分工明确,同时又能增加互相调用,协作开发。有效的为servlet做了“减压”工作。
MVC指MVC模式的某种框架,它强制性地使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。较典型的MVC就是JSP+servlet+javabean的模式。
视图
视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括AdobeFlash和像XHTML,XML/XSL,WML等一些标识语言和Webservices.
MVC好处是它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。
模型
模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有较多的处理任务。例如它可能用像EJBs和ColdFusionComponents这样的构件对象来处理数据库,被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
控制器
控制器接受用户的输入并调用模型和视图去完成用户的需求,所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。