简单理解两种JSP体系结构

开发 后端
最近已经有了很多相关的介绍,JSP正在成为一种卓越的Java技术,可用于创建动态Web应用程序。本文将介绍种JSP体系结构。

Java程序员之所以喜爱JSP有数不清的理由。有些人喜欢它为交互式页面带来的“一次编写,处处使用”的方式;还有些人欣赏它是因为它容易学习,并且使他们可以把Java作为一种服务器端脚本语言来使用。但更多的还都是因为一个共同原因??使用JSP的***好处是它能帮助你有效地把表达与内容分离开。在本文中,我对下面的问题作了深入探讨,那就是,如何使用JSP体系结构获得***的表达-内容分离效果。

这个模型也可以被看作是通用MVC设计模式在服务器端的一个实现。请注意,在阅读本文之前,你需要熟悉基本的JSP和servlet编程,因为文中将不会涉及到任何语法规则问题。

Servlets有什么问题?

尽管JSP在动态Web内容服务和分离内容与表达上可以做得非常好,但仍然会有人置疑,为什么要把servlets丢在一边呢?其实servlets的作用不容置疑。它们在服务器端处理上做得很优秀,而且,由于它们已有了坚实的基础,所以仍将被保留。实际上,从结构上讲,你可以把JSP看作是servlets的一种高级抽象,就像Servlet2.1 API的一种扩充一样来实现。然而,你也不应当滥用servlets,它们并非对每个人都适用。举个例子,如果网页设计者能够很容易地用传统HTML或XML工具写出JSP页的话,servlets就更适合那些后台程序的开发者,因为servlets通常是用集成开发环境(IDE)编写的??一般来说这种方式需要更高级的编程技能。

在运用servlets时,即使是开发者也必须小心谨慎以确保表达和内容不存在紧密的联系。要做到这一点,你通常可以使用第三方HTML包(比如htmlKona)来混合代码。但即便是这种方法,尽管它通过简单的屏幕变换带来了一些灵活性,却无法帮你避免表达格式本身的改动。例如,如果你的表达格式从HTML变为DHTML,你就必须确保那些语言包适应新的格式。假设一种最坏的情况,如果一个包不可用,你也许将不得不忙于在动态内容中艰难地编写表达,这会把你累死。那么,如何解决这个问题呢?接下来你将看到,使用JSP与servlets技术相结合是构建应用系统地一种好方法。不同的体系,早期的JSP体系结构规范提出了两种用JSP技术建立应用程序的方式。这两种方式在术语中分别称作JSP Model 1 和JSP Model 2,它们的本质区别在于处理批量请求的位置不同。在Model 1体系中,如图1所示,jsp页面独自响应请求并将处理结果返回客户。这里仍然存在表达与内容的分离,因为所以的数据存取都是由bean来完成的。

尽管Model 1体系十分 适合简单应用的需要,它却不能满足复杂的大型应用程序的实现。不加选择地随意运用Model 1,会导致JSP页内被嵌入大量的脚本片段或Java代码,特别是当需要处理的请求量很大时,情况更为严重。尽管这对于Java程序员来说可能不是什么大问题,但如果JSP页面是由网页设计人员开发并维护的??通常这是开发大型项目的规范??这就确实是个问题了。从根本上讲,将导致角色定义不清和职责分配不明,给项目管理带来不必要的麻烦。图1:JSP Model 1 体系结构。图中文字:BROWSER:浏览器;Request:请求;Response:响应;Application Server:应用服务器;Enterprise Servers/Data Sources:企业服务器/数据源。我们还可以看看JSP体系结构的另一张图例:MVC(Model-View-Controller ) 使用JSP和 SERVLET当 JSP 刚刚出来的时候,它基本上是ASP的翻版,但是,随着JSP的开发者把一些新功能加入JSP,JSP变得比ASP更有扩展性了,因为它可以和 SERVLET 整合在一起。这样,我们在用 SERVLET 控制应用程序的时候可以使用 JSP 做摸板。

Model 2体系结构,如图2所示,是一种把JSP与servlets联合使用来实现动态内容服务的方法。它吸取了两种技术各自的突出优点,用JSP生成表达层的内容,让servlets完 成深层次的处理任务。在这里,servlets充当控制者的角色,负责管理对请求的处理,创建JSP页需要使用的bean和对象,同时根据用户的动作决定把那个JSP页传给请求者。特别要注意,在JSP页内没有处理逻辑;它仅负责检索原先由servlets创建的对象或beans,从servlet中提取动态内容插入静态模板。在我看来,这是一种有代表性的方法,它清晰地分离了表达和内容,明确了角色的定义以及开发者与网页设计者的分工。事实上,项目越复杂,使用Model 2体系结构的好处就越大。图2:JSP Model 2体系结构  图中文字:instantlate:瞬间延时;Controller、View、Model分别为MVC设计模式中的控制者、试图、模型;其他同图1。

JSP Model 2体系结构在 SUN 公司的 J2EE 设计蓝图里有非常详细的说明,这里还有该体系结构的另一张图例:如何选择使用?1。很明显,JSP体系结构1是以简单页面控制为中心的,而体系2是以整体规划为中心的。换句话说,简单的流程我建议使用JSP体系结构1,而包含大量事物处理的项目建议使用体系2。2。如果你的项目里互交成分多不多,如果不多的话,建议使用JSP体系结构1。3。两个体系不是对立的,如果能够满足你的需求,你可以在你的项目里混合的使用两种JSP体系结构。

【编辑推荐】

  1. 选择JSP网站空间的三点注意事项
  2. 分析JSP后台文件管理源代码
  3. MySQL手册中查到的JSP中文乱码解决方法
  4. JSP中文乱码问题的描述及解决方法
  5. 浅谈如何调用JSP读取数据库中图片并显示在页面上
责任编辑:彭凡 来源: CSDN
相关推荐

2009-07-09 13:52:41

Inside JVM

2017-02-06 21:08:34

Android虚拟机体系结构

2009-09-11 10:38:03

LINQ体系结构

2009-06-26 15:58:28

EJB

2012-02-06 17:22:44

MySQL

2009-07-15 13:46:26

Swing体系结构

2014-07-23 09:33:52

2010-04-08 10:17:37

Oracle体系结构

2010-08-16 12:54:21

ASON路由技术

2010-09-25 13:38:23

Inside JVM

2010-06-21 14:51:14

ASON路由

2016-12-26 10:29:01

Spring框架结构

2010-04-23 09:13:05

Oracle体系结构

2009-09-08 14:34:42

Linq to SQL

2009-07-10 16:07:10

TikeSwing创建MVC体系结构

2009-06-29 18:11:40

JSP设计模式

2019-07-26 06:42:28

PG架构数据库

2010-05-26 18:20:59

SVN库

2011-06-15 13:07:10

JSP和JavaBea

2011-06-22 14:14:27

pageEncodincontentType
点赞
收藏

51CTO技术栈公众号