1、Mode I
Mode I:在开发中将显示层、控制层、数据层的操作统一交给JSP或JavaBean来处理,处理情况分两种:一种是完全使用JSP,另一种是使用JSP+JavaBean的模式开发
(1)用户发出的请求(request)交给JSP页面进行处理。如果是开发小型的Web程序,为了考法速度与便利,通常会将显示层和逻辑层都写在JSP页面中
优点:【1】开发速度快。程序设计人员不需要额外编写JavaBean和Servlet,只需要专注开发JSP页面
【2】小幅度修改程序代码较方便。因为没有JavaBean或Servlet,所以在修改程序是,直接修改JSP后,再交给web容器重新编译执行即可,不用像写JavaBean 或Servlet要先将Java源文件(*.java)编译成类文件(*.class),再放在web容器上才能够执行。
缺点:【1】程序可读性低。因为程序代码和网页标记斗魂合在一起,浙江增加维护的困难度和复杂度。
【2】程序可重复利用性低。由于将所有的程序代码都直接写在JSP页面中,并没有把常用的程序写成组建以增加重用性,因此造成程序代码过于繁杂,难以维护。
(2)若将显示操作都写入JSP页面中,而业务层都写成JavaBean形式,将程序代码封装成组件。这样,JavaBean将负责大部分的数据处理,如执行数据库操作等(类似DAO),再将数据处理后的结果返回JSP页面上显示。
优点:【1】程序可读性较高。因为大部分程序代码写在JavaBean中,不会和网页显示标记混合在一起,因此,在进行后期维护是,能够较为轻松。
【2】可重复利用性高。由于核心业务代码使用JavaBean来开发,因此可重复使用此组件,可以大大减少编写重复性程序代码的开发工作。
缺点:没有流程控制。程序中每一个JSP页都需呀检查请求的参数是否正确、条件判断、异常发生时的处理,而求所有的显示操作都与具体的业务代码紧密耦合在一起,将来维护困难
2、Mode II:Model-View-Controller
在Mode II中所有的开发都是以Servlet为主体展开的,由Servlet接收所有的客户端请求,然后根据请求调用响应的JavaBean,并将所有的显示结果交给JSP完成,也就是俗称的MVC设计模式
MVC设计模式被分成3个核心层,模型层、显示层和控制层。他们个字处理自己的任务
显示层(View):主要负责接收Servlet传递的内容,并且调用JavaBean,将内容显示给用户
控制层(Controller):主要负责所有的用户请求参数,判断请求参数是否合法,根据请求的类型调用JavaBean执行操作并将最终的处理结果交由显示层进行显示
模型层(Model):完成一个独立的业务操作组件,一般都是以JavaBean或者EJB的形式进行定义的。
在MVC设计模型中,最关键的部分是使用RequestDispatcher接口,因为内容都是通过此接口保存到JSP页面上进行显示的
当用户请求提交时,所有请求都会交给Servlet进行处理,然后由Servlet调用JavaBean,并将JavaBean的操作结果通过RequestDispatcher接口传递到JSP页面上。由于这些要显示的内容只是在一次请求-回应中有效,所以在MVC设计模式中,所有的属性传递都将使用requestDispatch属性范围传递,这样可以提升代码的操作性能。
在MVC设计模式中主要使用request属性范围的原因:保存范围越大占用的内存就越大。 4种属性范围分别有不同的保存时间,如果是page则保存在一个页面,跳转无效;如果是request则再一次服务器跳转后有效,选择新连接后失效;session则再一次回话中有效,用户注销后失效;application则保存在服务器上,服务器关闭失效,那么当属性只需要再一次服务器跳转上使用时,应用request范围所保存的时间是最少的,保存时间少内存占用量就少,所以性能是最高的。但是,如果某些属性要在一次回话中保存,肯定就要使用session,一般都在用户登录验证中使用session。