华南理工大学软件体系结构复习大纲.docx

上传人:b****7 文档编号:16230674 上传时间:2023-07-11 格式:DOCX 页数:31 大小:1.03MB
下载 相关 举报
华南理工大学软件体系结构复习大纲.docx_第1页
第1页 / 共31页
华南理工大学软件体系结构复习大纲.docx_第2页
第2页 / 共31页
华南理工大学软件体系结构复习大纲.docx_第3页
第3页 / 共31页
华南理工大学软件体系结构复习大纲.docx_第4页
第4页 / 共31页
华南理工大学软件体系结构复习大纲.docx_第5页
第5页 / 共31页
华南理工大学软件体系结构复习大纲.docx_第6页
第6页 / 共31页
华南理工大学软件体系结构复习大纲.docx_第7页
第7页 / 共31页
华南理工大学软件体系结构复习大纲.docx_第8页
第8页 / 共31页
华南理工大学软件体系结构复习大纲.docx_第9页
第9页 / 共31页
华南理工大学软件体系结构复习大纲.docx_第10页
第10页 / 共31页
华南理工大学软件体系结构复习大纲.docx_第11页
第11页 / 共31页
华南理工大学软件体系结构复习大纲.docx_第12页
第12页 / 共31页
华南理工大学软件体系结构复习大纲.docx_第13页
第13页 / 共31页
华南理工大学软件体系结构复习大纲.docx_第14页
第14页 / 共31页
华南理工大学软件体系结构复习大纲.docx_第15页
第15页 / 共31页
华南理工大学软件体系结构复习大纲.docx_第16页
第16页 / 共31页
华南理工大学软件体系结构复习大纲.docx_第17页
第17页 / 共31页
华南理工大学软件体系结构复习大纲.docx_第18页
第18页 / 共31页
华南理工大学软件体系结构复习大纲.docx_第19页
第19页 / 共31页
华南理工大学软件体系结构复习大纲.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

华南理工大学软件体系结构复习大纲.docx

《华南理工大学软件体系结构复习大纲.docx》由会员分享,可在线阅读,更多相关《华南理工大学软件体系结构复习大纲.docx(31页珍藏版)》请在冰点文库上搜索。

华南理工大学软件体系结构复习大纲.docx

华南理工大学软件体系结构复习大纲

《软件设计与体系结构》复习提纲

Chapter1:

1.Web的发展历程

Statichtml->applets->servlets->JSP->EJB

JavaApplet是用Java语言编写的一些小应用程序,这些程序是直接嵌入到页面中,由支持Java的浏览器(IE或Firefox)解释执行能够产生特殊效果的程序。

它可以大大提高Web页面的交互能力和动态执行能力

Servlet是位于Web服务器内部的服务器端的Java应用程序

Servlet由Web服务器的Web容器(Webcontainer)进行加载

Servlet可以操作服务器的数据库或文件系统

Servlet在业务逻辑和界面部分提供很弱的分离,使用JSP和JavaBeans可以提高分离度。

JSP是专门为表现逻辑即界面部分设计的,JavaBeans是为业务逻辑设计的。

JSP为创建高度动态的Web应用提供了一个独特的开发环境。

EJB是用于开发和部署基于组件的应用架构。

使用这个架构的应用是可扩展的,具有事务处理能力,支持多用户操作。

这些应用具有JAVA语言最基本的特点:

编写一次,就可以在支持EJB规范的不同平台上部署运行。

2.MVC的概念

(1)什么是MVC。

MVC是三个单词的缩写,分别为:

模型(Model),视图(View)和控制Controller)。

(2)MVC在JavaEE框架下分别对应什么

MVC模式的目的就是实现Web系统的职能分工。

Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。

View层用于与用户的交互,通常用JSP来实现。

Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。

(3)使用MVC框架开发网站的好处是什么

低耦合性

高重用性和可适用性

较低的生命周期成本

快速的部署

可维护性

有利于软件工程化管理

3.J2EE的架构

(1)J2EE组件包括哪些,分别有什么用处

J2EE必须包括以下四个组件。

Applets:

典型的就是在浏览器内运行图解式的JAVA成分(图形组件)。

Applicationclientcomponents申请用户成分:

执行在客户端上的JAVA程序

Webcomponents(Servlets,JavaServerPagesandJavaServerFaces):

在web服务器上执行,在JavaEE中提供控制器和视图功能

EnterpriseJavaBeans:

在web服务器上执行分配,交易的成份为业务逻辑和数据库通路

(2)J2EE容器包括哪些,分别有什么用处

容器:

JavaEE服务器为每个成份类型以容器的形式提供在下面的服务。

Appletcontainer

典型的由一个浏览器提供的,可以支持java插件

Applicationclientcontainer申请用户容器

单机java运行时间环境

Webcomponentcontainer网络成分容器

由JavaEE申请服务器提供

Enterprisebean(EJB)container

由JavaEE申请服务器提供

(3)J2EE提供的部分标准服务:

什么是JSTL,什么地方会用到,请举例

JSTL(JSPStandardTagLibrary,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,囊括了很多JSP应用的功用核心功能。

JSP标准标签库(JSPStandardTagLibrary,JSTL)是一个实现Web应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML操作以及数据库访问。

使用JSTL标记来避免在JSP页面中使用脚本编制元素。

通过从表示层删除源代码来简化软件维护。

JSTL经过简化的表达式语言,它允许在不必使用功能齐全的编程语言的情况下对JSTL操作指定动态属性值。

 

什么是Persistence,什么地方会用到,请举例

持久性,将程序中的信息进行保存以供以后使用。

少量信息时存在文件中,信息量较大时使用数据库方式存储。

Java持久性API为开发人员提供了一种对象/关系映射工具,用来挂历Java应用中的关系数据。

应用实例:

使用Java持久性API完成用户信息的持久化,客户端程序通过Java持久性API把数据库中的用户信息显示出来。

什么是JTA,什么地方会用到,请举例

JTA,即JavaTransactionAPI,译为Java事务API。

应用系统由此可以访问各种事务监控。

JTA允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据。

JDBC驱动程序的JTA支持极大地增强了数据访问能力。

应用:

使用JTA实现事务划分。

 

什么是JMS,什么地方会用到,请举例

JMS(Java消息服务)是用于面向消息的中间件相互通信的应用程序接口。

Java消息服务应用程序结构支持两种模型:

  点对点或队列模型

  发布者/订阅者模型

4.JavaEE打包文件的构成

下面介绍在JavaEE应用中常见的包的类型、结构:

1--EJB-JAR包:

后缀为.jar,EJB模块,包含有SessionBean,MessageDriverBean,EntityBean。

2--WAR包:

后缀为.war,web模块,搜罗开发javaweb的所有文件如:

JSP,Servlet,JSF,javascrpit,web.xml,图片,音乐,flash资本等等。

3--EAR包:

后缀为.ear,现实上就是j2ee应用中的各类文档或模块,搜罗:

EJB模块,WEB模块,RAR模块,CAR模块等。

可以说它是开发项目的最终包,其他开发过程的模块最终会以.ear的包形式来实施应用。

.ear包主要的描述文件为application.xml,它放在META-INF文件下。

4--CAR包:

后缀为.jar,应用客户端模块,包含在客户端自力运行的类和访谒的JDBC,JMS,JAXP,JAAS,以及EJB客户端需要的类等。

5--RAR包:

后缀为.rar,这个包应该好理解,它是资本适配器模块,搜罗java毗连器,辅佐库函数,以及其他一些相关资本。

它就不作过多诠释。

 

Chapter2:

servlet

1.HTTP定义的哪4种客户端和服务器之间的交互方法?

分别是GET,POST,PUT,DELETE,分别对应对请求资源的查,改,增,删4个操作。

GET和POST使用的比较多。

其中,GET一般用于获取/查询资源信息,而POST一般用于提交数据/更新资源信息。

2.什么是servlet?

Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。

它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。

Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。

运行于服务器端,基于Java,在服务器端根据网络容器进行管理

3.Servlet在MVC框架中的作用是什么?

servlet主要担任控制器的功能,控制业务逻辑和页面的跳转。

 

4.Servlet重定向(sendredirect)和分派(RequestDispatcher)的区别?

1分派只能将请求转发给同一个WEB应用中的组件,而重定向还可以重新定向到同一站点不同应用程序中的资源,甚至可以定向到一绝对的URL。

2重定向可以看见目标页面的URL,分派只能看见第一次访问的页面URL,以后的工作都是由服务器来做的。

3分派响应调用者和被调用者之间共享相同的request对象和response对象,重定向调用者和被调用者属于两个独立访问请求和响应过程。

4重定向跳转后必须加上return,要不然页面虽然跳转了,但是还会执行跳转后面的语句,分派是执行了跳转页面,下面的代码就不会再执行了。

假设你去办理某个执照:

重定向:

你先去了A局,A局的人说:

“这个事情不归我们管,去B局”,然后,你就从A退了出来,自己乘车去了B局。

分派:

你先去了A局,A局看了以后,知道这个事情其实应该B局来管,但是他没有把你退回来,而是让你坐一会儿,自己到后面办公室联系了B的人,让他们办好后,送了过来。

5.Servlet分派有哪两种模式(forwarding和including),这两种模式的区别是什么?

共同点Include和Forward:

将当前请求转到另外一个JSP或者servlet处理。

include和forward的区别:

include是去而复返,forward是前不见古人,后不见来者。

include是把别人包含进来,forward是丢掉了自己。

include是把另一个servlet/jsp处理过后的内容拿过来与本身的servlet的内容一同输出.原始servlet输出的内容+被include进来的servlet的输出内容;

forward方法是把请求的内容转发到另外的一个servlet/jsp。

在forward之前,在原始的servlet中不能对输出做flush。

最终只有被forward去的servlet的内容被输出。

在原始servlet中设置的响应状态码和响应头会被include的servlet忽略。

include的servlet在处理的时候只会保留进入include的servlet之后的状态码和响应头。

对于forward,在两个地方设置的状态码和响应头都会被用到。

6.Servlet之间共享对象有哪些方式?

应用程序:

由使用ServletContex对象的所有Servlets之中分享了。

请求:

在使用HttpServletRequest对象并有相同请求的Servlets之中分享。

会话:

在由使用HttpSession对象并服务相同的客户的所有Servlets中分享。

7.Filter(过滤器)是什么,可以用于什么场景,请举例。

filter功能:

它使用户可以改变一个请求和修改一个应答。

Filter不是一个servlet,它不能产生一个应答,它能够在一个请求到达servlet之前预处理请求,也可以在应答离开servlet时处理应答。

换种说法,filter其实是一个“servletchaining“(servlet链)。

Filter主要用于以下几个方面:

身份验证、登录和检验、图像转换、数据过滤、加密

XSLT过滤器用于转换XML内容

高速缓存

8.理解过滤器链(filterchain)的配置方式,给定一个过滤器链的配置文件,能够判定过滤器执行的先后顺序(chapter2–ppt.p66~p67)

过滤器有两种映射模式:

一种是对URL模式的映射,也是默认的映射模式,在URL模式中可以采用通配符“/*”;另外一种模式是对Servlet的映射,这是过滤器关联的是Servlet的逻辑名称。

之间指明Filter与URL地址或者Servlet之间的对应关系。

在过滤器执行过程中先执行URL再执行Servlet。

FormChecker

Prime

Logger

/*

PrimeTrailer

Prime

这段代码的Servlet‘Prime’映射次序为

LoggerFormCheckerPrimeTrailer

9.什么是侦听器?

侦听器可用于侦听哪些状态变化?

举出一个采用的侦听器的例子。

一个能够对Web容器事件中特定的事件和状态的改变进行监听和做出反应的类。

例子:

ServletContextAttributeListener监听对ServletContext属性的操作,比如增加、删除、修改属性。

ServletContextListener监听ServletContext。

当创建ServletContext时,激发contextInitialized(ServletContextEventsce)方法;当销毁ServletContext时,激发contextDestroyed(ServletContextEventsce)方法。

HttpSessionListener监听HttpSession的操作。

当创建一个Session时,激发sessionCreated(HttpSessionEventse)方法;当销毁一个Session时,激发sessionDestroyed(HttpSessionEventse)方法。

例子:

监视器开始和停止网络模块用于执行启动和关闭任务

监视器创造和断开远程连接信息

记录重要的申请事件

在ServletContext或HttpSession对象创建的同时加入状态

 

Chapter3/4:

JSP

1.什么是JSP

答:

JSP全称是JavaServerPages,它是一种服务器端脚本语言,可以让你把静态HTML生成动态HTML。

它在传统的网页HTML文件中插入Java程序段和JSP标记,从而形成以.jsp为后缀名的JSP文件。

它是J2EE的一个重要组成部分。

2.JSP在MVC框架中的作用

答:

JSP在MVC框架中是主要作用是负责表示视图。

一般是客户发出一个请求,请求发送到程序之中,生成动态内容和调用一个JSP页面并把内容发送至浏览器上。

3.JSP的运行模型。

(转化为Servlet)

答:

JSP运行在Web容器中,Web容器将客户请求分发到JSP页面,处理完之后返回响应给客户端。

JSP文件设计时是JSP文件,运行时又转化为Servlet代码。

JSP文件会被容器转化成Servlet,然后编译运行。

4.JSP的基本语法:

(3种指令(directive),基本脚本(scripting))

答:

JSP的基本语法可分为三种指令及基本脚本。

JSP指令不能产生任何可视的输出,但会告诉JSP编译器对页面要做的一些操作,其中可分为

Pagesdirective(页面指令),includedirective(包含指令)和taglibdirective(标签指令)。

下面加以说明:

Pagesdirective作用是定义一些在页面编译的时候会用到的特有的属性;

Includedirective用在需要包含一个外部文件的地方;

Taglibdirective用来声明页面会使用的到的一些标签。

基本脚本包括声明,表达式,内嵌的Java代码和注释。

5.JSP中共享变量有哪四个作用域(scope)?

(page,request,session,application)它们分别表示什么作用范围。

答:

作用域有四个:

页面作用域(page),共享变量在当前页面有效,在页面中创建它们,只在当前页面可用。

请求作用域(request),共享变量在当前请求周期有效,这个变量可以跨越forword前后的两页,但只要刷新页面,它们就被重新计算了。

连接作用域(session),在当前会话周期中有效,简单点来说,就是开启浏览器和关闭浏览器的过程

全局作用域(application),在整个应用中都有效,就是你打开服务器,到服务器关闭,这个共享变量都有效。

6.什么是javabean?

javabean在MVC框架中的作用?

Jsp中如何引用javabean?

JavaBean组件是一些可移植、可重用,并可以组织到应用程序中的Java类。

JavaBean负责功能相当于MVC中的M

JSP的一个重要特性就是可以用javaBean实现功能的扩展。

将大部分功能放在javaBean中完成,以使jsp页面程序更干净简洁、利于维护。

JavaBean可以很方便的用来捕获页面表单的输入并完成各种业务逻辑的处理。

7.理解实验二中的Jsp代码。

 

Chapter5:

JPA

1.什么是持久化,什么是ORM

持久化(Persistence):

把应用的数据存储在数据库/文件中,在程序重新启动的时候,数据依然保存。

ORM对象关系映射(Object-RelationMapping):

ORM框架能够将Java对象映射到关系数据库,能够直接持久化复杂的Java对象。

2.实体类的标注信息的意义。

给定一个简单的实体类的定义,能推算出该实体类对应的数据表的结构。

答:

采用标注方法映射的实体Bean,在类的定义中还包含了标注的映射信息

3.实体生命周期。

实体管理器的四个和实体生命周期相关的操作:

persist(),remove(),update(),merge()

答:

1.生命周期

(1)New:

新创建,还未和PersistenceContext建立关联的对象。

(2).Managed:

持久化受管对象,已经和PersistenceContext建立了关联的对象。

(3).Datached:

游离态离线对象,没有和PersistenceContext建立关联的对象。

(4).Removed:

删除的对象,尚且和PersistenceContext有关联,

但是已经准备好从数据库中删除。

2.相关操作

persist(ObjectX):

使一个实体实例变成管理的和持久的。

实体对象和数据库保持关联。

•如果X是一个新的实体,会变成被管理的。

•如果X是一个已经存在的被管理的实体,持久操作将被忽略。

•如果X是一个删除的实体,它将变成被管理的。

•如果X是一个离线的对象,当调用persist操作的时候,将抛出EntityExistsException异常。

remove(ObjectX):

使一个被管理的实体实例处于删除状态,在事务提交或调用em.flush()操作的时候,将被从数据库中删除

•如果X是一个新建的实体,remove操作将被忽略。

•如果X是一个被管理的实体实例,删除操作使得这个实体实例变成被删除状态。

•如果X是一个离线的实体,调用remove操作的时候,将抛出异常

•如果X是一个删除的实体,remove操作将被忽略。

refresh(ObjectX):

从数据库加载信息到对应的实体对象。

使得实体对象的内容和数据库保持一致

Merge(ObjectX):

将用户对一个detached状态实体的修改进行保存,保存后将产生一个新的managed状态对象

Chapter6:

EJB

1.什么是EJB,采用EJB的好处

EnterpriseJavaBeans是一个用于分布式业务应用的标准服务端组件模型。

好处是:

采用EnterpriseJavaBeans架构编写的应用是可伸缩的、事务性的、多用户安全的。

采用EJB编写的这些应用,可以部署在任何支持EnterpriseJavaBeans规范的服务器平台,如jboss、weblogic、GlassFish等。

2.EJB包括哪三种类型的bean。

分别的作用。

1)会话bean(sessionbean)

负责与客户端交互,是编写业务逻辑的地方.

2)消息驱动bean(message-drivenbean)

它是专门用于异步处理java消息的组件.具有处理大量并发消息的能力.

3)实体bean(entitybean)

EJB3.0之后,被JavaPersistentAPIs(简称JPA)取代。

3.会话bean包括哪两种类型。

无状态会话bean和有状态会话bean的区别?

两种会话bean的生命周期的区别?

1)无状态会话bean

不保存会话状态

每个EJB实例可供多个用户使用

每个用户使用EJB实例时设置的值可能在该实例被其他用户使用时修改

2)有状态会话bean

保存会话状态

每个bean实例只供一个用户使用

所以性能开销比较大

用户为它设置的值是不会被其他用户修改,所以可以正确保存用户设置的值,

4.EJB的两种调用模式:

(本地调用和远程调用)。

分别用于什么场景

会话bean有远程调用和本地调用两种模式:

本地调用:

需要调用者和布署EJB的容器在同一个JVM(JAVA虚拟机)中

远程调用:

则不管调用者和布署EJB的容器的分布情况,可能是同一个JVM,可能是同一台电脑上的不同的JVM,也可能是分布在不同的电脑上的JVM。

5.JMS支持哪两种消息传递模型,有何区别?

JMS支持两种消息传递模型:

点对点(point-to-point,简称PTP)和发布/订阅(publish/subscribe,简称pub/sub)。

这两种消息有以下区别:

1)PTP消息传递模型规定了一条消息只能传递给一个接收方。

采用javax.jms.Queue对象。

Pub/sub消息传递模型允许一条消息传递给多个接收方。

采用javax.jms.Topic对象

2)这两种模型都通过扩展公用基类来实现:

javax.jms.Queue和javax.jms.Topic都扩展自javax.jms.Destination类。

 

Chapter7/8:

Webservice

1.什么是webservice?

为什么需要webservice,webservice架构带来的好处?

有哪两种主要类型的webservice?

Webservice就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API(应用程序接口)。

网络服务能满足这些需求:

1.客户端和服务器很容易实现

2.有标准的方法来传达和描述服务

3.网络服务是完全地供应商、平台和语言中立的

4.客户和服务之间几乎没有(或不)连接

5.客户能对服务进行动态地连接,服务器不关心谁跟他们连接

两种主要的webservice类型

1SOAPbasedWebService

基于XML格式

重量级网络服务

2RESTFULWebService

轻量级网络服务

2.SoapbasedWebservice中的三个核心技术是什么(SOAP,WSDL,UDDI)。

分别的用途。

•SOAP(SimpleObjectAccessProtocol)简单对象访问协议

•传输数据

•WSDL(WebServicesDescriptionLanguage)服务描述语言

•描述服务

•UDDI(UniversalDescription

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 数学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2