JSP和Servlet结合的方法

JSP网站开发技术标准给出了两种使用JSP的方式。这些方式都可以归纳为模式一和模式二。这两种结构在JSP技术一开始应用时,就占有了绝对的统治地位。在当今的开发中,我们比较偏向于使用模式二,但是模式一对小型的开发比较占有优势。

模式一:JSP+JavaBean
   在模式一中,JSP页面独自响应请求并处理结果返回客户。所有的数据通过Bean处理,JSP实现页面的表现。模式一技术也实现了页面的表现和页面的商业逻辑相分离。
    在最新引入JSP技术的时候。模式一占有统治地位。
    在用JSP处理显示和业务逻辑时,使用模式一比较简单。JSP页面独自响应请求并经处理后吧结果返回客户端。所有的数据通过JavaBean来处理,JS实现页面的显示,通过使用模式一,可以实现页面的显示和页面的内容(逻辑)分离
   但是大量使用此模式可能带来一个副作用,那就是会导致在页面里面嵌入大量的Java控制代码。当要处理的业务逻辑复杂时,这种情况变得非常糟糕。
   大量的内嵌代码使得页面变得庞大,同时也非常复杂。当页面的功能实现后交给美工或者页面内容设计人员进行包装时,问题就变得严重了。所以大型的项目里,这种方法将会导致页面的维护困难。

模式二: JSP+Servlet+JavaBean
  模式二,就是指JSP+Servlet+JavaBean技术。在模式二中,结合了JSP和Servlet技术,模式二充分利用了JSP和Servlet两种技术原有的优点。
  此模式遵循视图控制器(MVC)模式。它的主要思想是使用一个或者多个Servlet作为控制器。请求由前沿的Servlet(可能是多个Servlet构成的一个处理链)接收并处理后,会重新定向到JSP。在Servlet作为控制器时,每个Servlet通常只实现很少一部分功能,多个Servlet控制器就可以结合起来完成复杂的任务。这样的好处是Servlet的重要性,一个副作用就是可能会导致请求响应的时间加长。在此模式里,JavaBean作为模型的角色,它充当JSP和Servlet通信的中间工具。Servlet处理完后设置Bean的属性,JSP读取此Bean的属性,然后进行显示。
  在实际的项目开发过程中,页面设计者可以方便地使用普通的HTML工具开发JSP页面,Servlet却更适合于后端开发者使用。开发Servlets需要的工具是Java集成开发环境。
  此模式更加明显地把显示和逻辑分离,使得代码比模式一的容易管理,适合大型项目的开发

两种模式的比较

  从开发的观点看,模式二具有更清晰的页面表现、清楚的开发者角色划分,可以充分地利用开发小组中的界面设计人员。这些优势在大型项目开发中表现得尤为突出。使用这一模式,可以充分发挥每个开发者各自的特长;界面设计开发人员可以充分发挥自己的设计才能,来体现页面的表现形式;程序编写人员则可以充分发挥自己的商务处理逻辑思维,来实现项目中的业务处理。
  在目前的大型项目中,模式二更多地被采用。

JSP和Servlet的选择
  我们知道,所有的JSP都必须编译成Servlet,并且在Servlet容器中执行。从技术角度来看,JSP和Servlet是一样的。
  但JSP有很多关键因素胜过Servlet
1. JSP以显示为中心,它为Web显示开发人员提供了更加方便的开发模式
2. JSP可以把显示和内容分离,实现的方法就是借助JavaBean、Taglib,这样项目的显示和业务逻辑开发可以同时进行。
3. JSP可以帮助组织Web应用的物理状况。
4. JSP由容器自动编译。

Servlet曾经得到广泛的应用,但随着J2EE平台的不断完善,它的应用规模也在不断降低。因为随着J2EE的出现,Servlet的业务处理能力不如EJB,它的页面表示能力不如JSP方便。但是这不等于说Servlet已经没有什么用处了,在如今的J2EE应用开发中,它仍然大量用来处理小型的任务,或者用来作为MVC视图模式中的控制器。具体地讲,它主要负责那些容器管理的任务组。
1. 协调输出,但几乎不直接参与生成动态Web页面内容。
2. 收集和验证用户输入,但几乎不进行实际处理。
3. 处理及其简单的业务逻辑
4. 处理JSP不好处理的后台服务或者其他有特殊要求的问题。

在构建Web站点时,如果Web功能不是非常稳定,那么使用Servlet就不是头等的选择。因为Servlet比JSP更难于维护,它需要编译类,而修改JSP时只要修改它的源文件,容器会自动对发生改变的JSP进行重新编译,故使用Servlet会使维护变的困难,即使是一个很小的改动,Web页面设计人员可能也不能胜任。相反,当JSP开发完成后,如果只是对页面的内容做很少的改动,那么可能不需要JSP程序员参与也能完成。
   在特定的软件系统环境中,选择使用Servlet还是JSP通常不是绝对的。最常见的情况是把两者结合起来使用,比如可以把Servlet作为视图控制器,让它处理请求;当Servlet处理完请求后,就把处理的结果转发给JSP,JSP处理显示的问题。

你可能感兴趣的:(设计模式,jsp,bean,Web,servlet)