商业逻辑体现了MVC架构中的模式。商业逻辑代码为页面做处理。如果进入servlet的请求是一个数据库查询,servlet就将这个请求传送到一个SQL调用或类似的数据库代码。如果请求是一个包括输入信用卡号的购买请求,那么事物处理代码就接管了。在某种意义上,架构的模式部分是让应用程序处于领先地位的全部原因。
JSP页面是显示层(视图),是用户与应用程序交互的地方。它提供输入并显示结果。页面不应该包括任何脚本。它只是将数据传送到servlet,并接收和显示返回的数据。
该架构的优势应该是很明显的。首先,它将计算和显示清楚地分开了。结果很理想,在JSP页面上没有出现处理过程,在servlet或商业逻辑中没有数据格式。这种分离的另一个好处是Java程序员可以专注于servlet代码,HTML编写者可以专注于JSP。 第二点,控制器servlet做页面上的所有的决定。 在你的页面和逻辑中不会出现任何决策。这就提高了一个应用程序的性能和可扩展性,因为请求可以被导向架构的不同的组件,甚至是不同的服务器。
运用MVC架构
MVC架构没有必要成为用于所有Java应用程序的最佳方法。 如你想象的那样,它在准备和编码时往往很复杂——这对简单的应用程序来说是没必要的。当页面导航相对来说比较简单和固定,而且应用程序中的页面结构可以由一个简单的目录结构管理时, Model 1架构仍然是最好的方法。这些应用程序往往将页面流动信息嵌入到页面间的链接中。(JSP中出现forward()就告诉你,在该页中有嵌入的逻辑,让你对显示下一页作出决定。)对于对流量或可扩展性需求有限的静态的应用程序来说,标准的JSP模式仍然是一个可行的选择方案。
在一些情况下,你可能想把一个JSP应用程序移植到MVC架构中。例如,你可能开始时用的是Model 1,简单的JSP架构,随着你的需求的增加,你会发现维护起来太复杂或太难了。如果你花很长的时间对应用程序做相对来说较简单的修改,或者如果你经常在你的代码中发现bug,那么你的JSP导向的应用程序也许就不再是合适的方法了。