当前位置:文档之家› 详细介绍JSP技术的两种架构模型

详细介绍JSP技术的两种架构模型

详细介绍JSP技术的两种架构模型
详细介绍JSP技术的两种架构模型

JSP和JavaBean模型将页面显示和业务逻辑处理分开。JSP实现页面显示,JavaBean对象用来保存数据和实现商业逻辑。

运用JSP/Servlet实现的web动态交互,主要采用JSP和JavaBean模型还有JSP和JavaBean+Servlet模型。本文分别介绍这两种模型,并比较它们的优缺点。

一。JSP和JavaBean模型

模型的结构如下图所示,称之为JSP和JavaBean模型。其工作原理是:当浏览器发出请求时,JSP接收请求并访问JavaBean.若需要访问数据库或后台服务器,则通过JavaBean 连接数据库或后台服务器,执行相应的处理。JavaBean将处理的结果数据交给JSP.JSP提取结果并重新组织后,动态生成HTML页面,返回给浏览器。用户从浏览器显示的页面中得到交互的结果。

JSP和JavaBean模型充分利用了JSP技术易于开发动态网页的特点,页面显示层的任务由JSP(但它也含事物逻辑层的内容)承担,JavaBean主要负责事务逻辑层和数据层的工作。JSP和JavaBean模型依靠几个JavaBean组件实现具体的应用功能,生成动态内容,起最大的特点就是简单。

二。JSP和JavaBean+Servlet模型

JSP和JavaBean+Servlet模型的体系结构如下图所示,称之为JSP和JavaBean和Servlet 模型。它是一种采用基于模型视图控制器(Model和View和Controller)的设计模型,即MVC模型。

该模型将JSP程序的功能分为3个层次:Model(模型)层、View(视图)层、Controller (控制器层)。Model层实现业务逻辑,包括了Web应用程序功能的核心,负责存储与应用程序相关的数据;View层用于用户界面的显示,它可以访问Model层的数据,但不能更改这些数据;Controller层主要负责Model和View层之间的控制关系。

具体实现时,JavaBean作为模型层,Servlet作为控制层,JSP作为视图层。每层的作用如下:

1.JavaBean作为Model层,实现各个具体的应用逻辑和功能。

2.Servlet作为Controller层,负责处理HTTP请求,包括:

对输入数据的检查和转换。

通过JavaBean访问数据库。

初始化JSP页面中要用到的JavaBean或对象。

根据处理中不同的分支和结果,决定转向那个JSP等。

3.JSP作为View层,负责生成交互后返回的界面。它主要通过信息共享,获取Servlet生成的对象或JavaBean,从中取出数据,插入到HTML页面中。

该模型的工作原理是:所有的请求都被发送给作为控制器的Servlet.Servlet接收请求,并

根据请求信息将它们分发给相应的JSP页面来响应;同时Servlet还根据JSP的需求生成相应的JavaBean对象并传输给JSP.JSP通过直接调用方法或利用UseBean的自定义标签,得到JavaBean中的数据。

这种设计模式通过Servlet和JavaBean的合作来实现交互处理,很好的实现了表示层、事务逻辑层和数据的分离。

三。两种模型的比较

从以上对两种模型的说明来看,JSP和JavaBean模型和JSP和JavaBean+Servlet模型的整体结构都比较清晰,易于实现。它们的基本思想都是实现表示层、事务逻辑层和数据层的分离。这样的分层设计便于系统的维护和修改。两种模型的主要区别表现在:

1.处理流程的主控部分不同。JSP和JavaBean模型利用JSP作为主控部分,将用户的请求、JavaBean和响应有效的链接起来。JSP和JavaBean+Servlet模型利用Servlet作为主控部分,将用户的请求、JavaBean和响应有效的链接起来。

2.实现表示层、事务逻辑层和数据层的分离程度不同。JSP和JavaBean+Servlet模型比JSP 和JavaBean模型有更好的分离效果。当事务逻辑比较复杂、分支较多或需要涉及多个JavaBean组件时,JSP和JavaBean模型常常会导致JSP文件中嵌入大量的脚本或Java代码。特别是大型项目开发中,由于页面设计和逻辑处理分别由不同的专业人员承担,如果JSP 有相当一部分处理逻辑和页面描述混在一起,这就有可能引起分工不明确,不利于两个部分的独立开发和维护,影响项目的施工和管理。在JSP和JavaBean+Servlet模型中,由Servlet 处理HTTP请求,JavaBean承担事务逻辑处理,JSP仅负责生成网页的工作,所以表现层的混合问题比较轻,适合于不同专业的专业人员独立开发Web项目中的各层功能。

3.适应于动态交互处理的需求不同。当事务逻辑比较负责、分支较多或需要涉及很多JavaBean组件时,由于JSP和JavaBean+Servlet模型比JSP和JavaBean模型有更清晰的页面表现、更明确的开发模块的划分,所以使用JSP和JavaBean+Servlet模型比较适合。然而,JSP和JavaBean+Servlet模型需要编写Servlet程序,Servlet程序需要的工具是Java集成开发环境,编程工作量比较大。

对于简单的交互处理,利用JSP和JavaBean模型,JSP主要是使用HTML工具开发,然后再插入少量的Java代码就可以实现动态交互。在这种情况下,使用JSP和JavaBean模型更加方便快捷。

JSP和JavaBean模型和JSP和JavaBean+Servlet模型这两种用于开发Web应用的方法都有很好的使用性。当然,实现动态交互的Web应用,不限于这两种模型。在实际Web应用的开发过程中,需要根据系统特点、客户需求及处理逻辑的特性,选择合适的模型,力求使整个应用的体系结果更加合理,从而实现不同的交互处理。

web三层架构概述

web三层架构概述 web三层架构概述 2009-05-23 10:23 关于 三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。 1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。 2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。 3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增、删、改、查。 概述

三层结构原理: 3个层次中,系统主要功能和业务逻辑都在业务逻辑层进行处理。 所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。 三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。 表示层位于最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。 业务逻辑层业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、

业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层。例如Martin Fowler在《Patterns of Enterprise Application Architecture》一书中,将整个架构分为三个主要的层:表示层、领域层和数据源层。作为领域驱动设计的先驱Eric Evans,对业务逻辑层作了更细致地划分,细分为应用层与领域层,通过分层进一步将领域逻辑与领域逻辑的解决方案分离。 业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。

JSP技术简介及特点——外文翻译

JSP Technology Conspectus And Specialties By:Kathy Sierra and Bert Bates Source: Servlet&JSP The JSP (Java Server mix) technology is used by the Sun microsystem issued by the company to develop dynamic Web application technology. With its easy, cross-platform, in many dynamic Web application programming languages, in a short span of a few years, has formed a complete set of standards, and widely used in electronic commerce, etc. In China, the JSP now also got more extensive attention, get a good development, more and more dynamic website to JSP technology. The related technologies of JSP are briefly introduced. The JSP a simple technology can quickly and with the method of generating Web pages. Use the JSP technology Web page can be easily display dynamic content. The JSP technology are designed to make the construction based on Web applications easier and efficient, and these applications and various Web server, application server, the browser and development tools work together. The JSP technology isn't the only dynamic web technology, also not the first one, in the JSP technology existed before the emergence of several excellent dynamic web technology, such as CGI, ASP, etc. With the introduction of these technologies under dynamic web technology, the development and the JSP. Technical JSP the development background and development history In web brief history, from a world wide web that most of the network information static on stock transactions evolution to acquisition of an operation and infrastructure. In a variety of applications, may be used for based on Web client, look no restrictions. Based on the browser client applications than traditional based on client/server applications has several advantages. These benefits include almost no limit client access and extremely simplified application deployment and management (to update an application, management personnel only need to change the program on a server, not thousands of installation in client applications). So, the software industry is rapidly to build on the client browser multi-layer application. The rapid growth of exquisite based Web application requirements development of technical improvements. Static HTML to show relatively static content is right choice, The new challenge is to create the interaction based on Web applications, in these procedures, the

JSP课程各章节选择题答案

1)如果做动态网站开发,以下()可以作为服务器端脚本语言。 A . HTML B. JSPC. JavaScript D. Java 2)在设计Web项目的目录结构时,一般吧JSP和HTML文件放在()下。 A . src目录 B .文档根目录或其子文件下 WEB-INF 目录 C . META-INT 目录 D 3) 在Web项目的目录结构中,web.xml文件位于()中。 A . src目录 B .文档根目录 C . META-INF 目录 D .WEB-INF 目录 4) 下面对于B/S架构与C/S架构的描述错误的是()。 A . B/S架构解决了C/S架构的弊端,因而在程序开发中将会逐步取代C/S架构 B. B/S机构是基于in ternet网络实现的,使得用户访问的范围扩大 C . C/S架构师基于局域网实现的,当程序发生改的后,需要对每一个客户端进行维护 D . C/S可以设计出丰富的界面,而B/S则相对处于劣势 5)以下选项中()是正确的URL,(选两项) A . B . C . D . /n ews/welcome.html

C . response.setPageCoding() D . response.setCharset() 6) 在某个JSP 页面中存在这样一行代码, <%= 2”+ 4" %>运行该JSP 后,以下说法正 确的是( )。 A .这行代码没有对应的输出 B .这行代码对应的输出时 6 C. 这行代码对应的输出时 24 D .这行代码将引发错误 7) 与 page 指令 <%@ page import= java.util.*, java.text.* %> 等价的是( )。 A . <%@ page import= “java.util.* %> <%@ page import= “java.text.* “ %> B . <%@ page import= “java.util.* ” , import= “java.text.* “ %> C . <%@ page import= “java.util.* “ ; %> <%@ page import= “java.text.* “ ; %> D . <%@ page import= “java.util.* ;java.text.* “ %> 8) 下列选项中, ( )是正确的表达式。 A. <% String s = “hello world ” ;%> B . <% = “hello world ” ;%> C . <% = “hello world ” %> D . <% ! “hello world ” %> 9) 如果请求页面中存在两个单选按钮(假设单选按钮的名称为 sex ) , 分别代表男和女, 该页面提交后,为了获得用户的选择项,可以使用以下( )方法。 A. request.getParameter(sex); B . request.getParameter(“sex ”); C . request.getParameterValues(sex); D . request.getParameterValues(“sex ”); 10) JSP 内置对象request 和getParameterValues()方法的返回值是( )。 B. Object[ ]C . String D . Object 第三章 11) 使用request 对象进行重定向时,使用的是( A . gertRequestDispatcher(); C. sendRedirect() 12) 对于转发与重定向的描述错误的语句是( A ?重定向是在客户端发生作用,通过请求重新的地址实现页面转向 B .使用转发时由于是服务器内部控制权的转移,因而地址栏中的 URL 没有变化 C .使用重定向时可以在地址栏中看到转向后的 URL D .转发与重定向都可以实现在页面跳转,因而没有区别 13) 为了避免服务器的响应信息在浏览器端显示为乱码, 通常会使用 ( )语句重新设置 字符编 码。 B. response.setCharacterEncoding() A . String[ ] )方法。 B . forword() D . setRequestDispatcher(); )。 A . reponse.setContentType();

图解三层架构

什么是三层架构 所谓的三层开发就是将系统的整个业务应用划分为表示层——业务逻辑层——数据访问层,这样有利于系统的开发、维护、部署和扩展。 分层是为了实现“高内聚、低耦合”。采用“分而治之”的思想,把问题划分开来各个解决,易于控制,易于延展,易于分配资源。 表示层:负责直接跟用户进行交互,一般也就是指系统的界面,用于数据录入,数据显示等。意味着只做与外观显示相关的工作,不属于他的工作不用做。 业务逻辑层:用于做一些有效性验证的工作,以更好地保证程序运行的健壮性。如完成数据添加、修改和查询业务等;不允许指定的文本框中输入空字符串,数据格式是否正确及数据类型验证;用户的权限的合法性判断等等,通过以上的诸多判断以决定是否将操作继续向后传递,尽量保证程序的正常运行。 数据访问层:顾名思义,就是用于专门跟数据库进行交互。执行数据的添加、删除、修改和显示等。需要强调的是,所有的数据对象只在这一层被引用,如System.Data.SqlClient等,除数据层之外的任何地方都不应该出现这样的引用。 https://www.doczj.com/doc/8e15687619.html,可以使用.NET平台快速方便地部署三层架构。https://www.doczj.com/doc/8e15687619.html,革命性的变化是在网页中也使用基于事件的处理,可以指定处理的后台代码文件,可以使用C#、VB、C++和J#作为后台代码的语言。. NET中可以方便的实现组件的装配,后台代码通过命名空间可以方便的使用自己定义的组件。显示层放在ASPX页面中,数据库操作和逻辑层用组件或封装类来实现,这样就很方便的实现了三层架构。 2.为什么使用三层架构 对于一个简单的应用程序来说,代码量不是很多的情况下,一层结构或二层结构开发完全够用,没有必要将其复杂化,如果对一个复杂的大型系统,设计为一层结构或二层结构开发,那么这样的设计存在很严重缺陷。下面会具体介绍,分层开发其实是为大型系统服务的。 在开发过程中,初级程序人员出现相似的功能经常复制代码,那么同样的代码为什么要写那么多次?不但使程序变得冗长,更不利于维护,一个小小的修改或许会涉及很多页面,经常导致异常的产生使程序不能正常运行。最主要的面向对象的思想没有得到丝毫的体现,打着面向对象的幌子却依然走着面向过程的道路。 意识到这样的问题,初级程序人员开始将程序中一些公用的处理程序写成公共方法,封装在类中,供其它程序调用。例如写一个数据操作类,对数据操作进行合理封装,在数据库操作过程中,只要类中的相应方法(数据添加、修改、查询等)可以完成特定的数据操作,这就是数据访问层,不用每次操作数据库时都写那些重复性的数据库操作代码。在新的应用开发中,数据访问层可以直接拿来用。面向对象的三大特性之一的封装性在这里得到了很好的体现。读者现在似乎找到了面向对象的感觉,代码量较以前有了很大的减少,而且修改的时候也比较方便,也实现了代码的重用性。 下面举两个案例,解释一下为什么要使用三层架构。 案例一: 数据库系统软件由于数据量的不断增加,数据库由Access变成了SQL Server数据库,这样原来的数据访问层失效了,数据操作对象发生了变化,并且页面中涉及数据对象的地方也要进行修改,因为原来可能会使用 OleDbDataReader对象将数据传递给显示页面,现在都得换成SqlDataReader 对象,SQL Server和Access支持的数据类型也不一致,在显示数据时进行的数据转换也要进行修改,这是其中一种情况。

JSP技术简介(外文翻译)

JSP技术概述 一、JSP的好处 二、JSP页面最终会转换成servler。因而,从根本上,JSP页面能够执 行的任何任务都可以用servler来完成。然而,这种底层的等同性并不意味着servler和JSP页面对于所有的情况都等同适用。问题不在于技术的能力,而是二者在便利性、生产率和可维护性上的不同。毕竟,在特定平台上能够用Java编程语言完成的事情,同样可以用汇编语言来完成,但是选择哪种语言依旧十分重要。 和单独使用servler相比,JSP提供下述好处: 三、λJSP中HTML的编写与维护更为简单。JSP中可以使用常规的HTML: 没有额外的反斜杠,没有额外的双引号,也没有暗含的Java语法。 四、λ能够使用标准的网站开发工具。即使对那些对JSP一无所知的 HTML工具,我们也可以使用,因为它们会忽略JSP标签(JSP tags)。 五、λ可以对开发团队进行划分。Java程序员可以致力于动态代码。Web 开发人员可以将经理集中在表示层(presentation layer)上。对于大型的项目,这种划分极为重要。依据开发团队的大小,及项目的复杂程度,可以对静态HTML和动态内容进行弱分离(weaker separation)和强分离(stronger separation)。 六、在此,这个讨论并不是让您停止使用servlets,只使用JSP。几乎 所有的项目都会同时用到这两种技术。针对项目中的某些请求,您可能会在MVC构架下组合使用这两项技术。我们总是希望用适当的工具完成相对应的工作,仅仅是servlet并不能填满您的工具箱。 二、JSP相对于竞争技术的优势 许多年前,Marty受到邀请,参加一个有关软件技术的小型(20个人)研讨会.做在Marty旁边的人是James Gosling--- Java编程语言的发明者。 隔几个位置,是来自华盛顿一家大型软件公司的高级经理。在讨论过程中,研讨会的主席提出了Jini的议题,这在当时是一项新的Java技术.主席向该经理询问他的想法.他继续说,他们会持续关注这项技术,如果这

JSP企业面试题及答案(选择题)

一、单项选择题: 1.下列哪个不是HTML的常用标记。() A. B. C. D. 2.创建表单的HTML代码是() A.

B. C.