MVC/Model 2架构
在Model 2架构中,请求处理、业务逻辑处理以及画面呈现被区分为三个不同的角色职责,在分工合作开发时,使用Model 2架构可以理清职责界限,网页设计者与Java代码或请求处理以及商务模型原件的设计之间不用相互考虑太多,分工较为明确。如下图是基于请求/响应修正的MVC而产生的Model 2结构:
在使用servlet来完成视图如上图,如果将视图部分改用JSP,模型部分封装应用程序或业务逻辑,就会将各个角色分别由以下的技术来实现:
其中的POJO全名为Plain Old Java Object,也就是纯粹的Java对象。
Model 1架构
在使用Model 2架构,有很多请求转发流程控制、元件设计和很多代码,需要花费更多的时间与设计成本,所以有了如下的JSP结合JavaBean,也就是Model 1架构, 如下图是一个简单的范例:
在Model 1架构上,用户直接请求某个JSP页面,JSP回收机请求参数并调用JavaBean来处理请求。业务逻辑的部分封装至JavaBean中,JavaBean中或许还会调用一些后端的原件(如操作数据库),JavaBean处理完成后,JSP会再从JavaBean中提取结果,进行画面的呈现处理,如下图是Model 1架构的职责分工:
由于Model1架构中,JSP页面还负责收集请求参数和调用JavaBean的职责,所以维护JSP就有些麻烦了,同时JSP页面若夹杂HTML和Java程序,也不利于分工合作,但Model 1的好处是可以减少请求转发的流程与角色设计区分,方便快速开发,两种架构的选择需要根据实际情况进行选择。