Web开发模式
一、Web开发模式:
在实际的Web开发中,有两种主要的开发架构,称为模式一(Mode I) 和模式二 (Mode II)。
二、模式一 (ModeI):
Mode I就是指在开发模式中将显示层、控制层、数据层的操作统一交给JSP或JavaBean来进行处理。
Mode I的处理情况分为两种,一种是完全使用JSP进行开发,另外一种是使用JSP+JavaBean的模式进行开发。
1、完全使用JSP:
用户发出的请求(request)交给JSP页面进行处理,如果开发的是小型的Web程序,为了开发快速和便利,通常将显示层 (Presentation Layer) 和逻辑运算层 (Business Logic Layer) 都写在JSP页面中。
优点:
开发速度快,只需专注开发JSP页面,不需要额外编写JavaBean和Servlet。
小幅度修改代码方便,直接修改JSP后,再交给Web容器重新编译执行即可。而不用像写JavaBean或Servlet需要先将Java源文件 (*.java) 编译成类文件(*.class) ,再放在Web容器上才能运行。
缺点:
程序可读性低,因为程序代码和网页标记都混在了一起,这将增加维护的困难度和复杂度。
程序可重用低。由于将所有的程序代码都直接写在了JSP页面中,并没有把常用的程序写成组件以增加重用性,因此造成程序代码过于繁杂,难以维护。
2、使用JSP+JavaBean:
若将显示操作都写入JSP页面中,而业务层都写成JavaBean形式,将程序代码封装成组件。JavaBean负责大部分的数据处理,如执行数据库操作 (类似DAO) ,再将数据处理的结果返回到JSP页面上显示。
优点:
程序可读性较高。因为大部分的代码都写在JavaBean中,不会和网页显示标记混在一起,所以在进行后期维护时,能较为轻松。
可重用性高。由于核心业务代码使用JavaBean来开发,因此可重复使用此组件,可减少重复代码的编写。
缺点:
没有流程控制。程序中每一个JSP页都需要检查请求的参数是否正确、条件判断、异常发生时的处理,而且所有的显示操作都与具体的业务代码紧密耦合在一起,日后的维护困难。
小结:
Mode I 类似于JSP+DAO开发。总的来说,Mode I的结构更适合小型的程序开发,或是复杂度较低的程序。因此Mode I 的最大优点就是开发速度较快,但是在维护时要付出更大的代价。如果程序复杂度太大,总是可以快速的开发程序,但是后续的维护才是最重要的问题,考虑到代码的维护在开发中的地位,所以更多的使用Mode II。
三、模式二 (ModeII):
在Mode II 中所有的开发都是以Servlet为主体展开的,由Servlet接收所有的客户端请求,然后根据请求调用相应的JavaBean,并将所有的显示结果交给JSP 完成,也就是俗称的MVC 设计模式。
MVC 设一个设计模式,它强制性地使应用程序的输入、处理和输出分开。MVC设计模式被分成3个核心层,即模型层、显示层和控制层。它们各自处理自己的任务,各层的任务如下:
显示层(View):主要负责接收Servlet传递的内容,并且调用JavaBean,将内容显示给用户。
控制层(Controller):主要负责所有用户的请求参数,判断请求参数是否合法,根据请求的类型调用JavaBean执行操作并将处理结果交由显示层进行显示。
模型层(Model):完成一个独立的业务操作组件,一般都是以JavaBean或EJB的形式进行定义的。
小结:
在MVC中设计模式中,最关键的部分是使用 RequestDispatcher接口,因为内容是通过此接口保存到JSP页面上进行显示的。
当用户有请求提交时,所有请求都会交给Servlet进行处理,然后由Servlet调用JavaBean,并将JavaBean的操作结果通过RequestDispatcher 接口传递到JSP 页面上。由于这些要显示的内容只是在一次请求和回应中有效,所以在MVC设计模式中,所有的属性传递都会将使用request属性范围传递,这样可以提高代码的操作性能。