2015软件体系结构复习大纲答案.doc_第1页
2015软件体系结构复习大纲答案.doc_第2页
2015软件体系结构复习大纲答案.doc_第3页
2015软件体系结构复习大纲答案.doc_第4页
2015软件体系结构复习大纲答案.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件设计与体系结构 复习提纲Chapter 1:1 Web的发展历程 l Static html-applets-servlets-JSP-ejb Html:静态页面Applets:用Java 语言编写的一些小应用程序,这些程序直接嵌入到页面中,由浏览器解释执行Servlets:位于Web 服务器内部的服务器端的Java应用程序,可以操作服务器的数据库或文件系统JSP:将servlet的页面和业务逻辑进行分工Ejb:封装了应用逻辑以及访问数据的方法 ,可以被不同类型的应用程序同时调用 2 MVC的概念l 什么是M V C 。 MVC是一种设计模式,广泛使用并且被认为是javaee的核心概念。l MVC在JavaEE框架下分别对应什么M(模型),表示下层数据和业务逻辑,不包含用户界面的内容。V(视图),用户界面,用于和用户交互。C(控制),链接模型与视图并进行两者间的通讯。l 使用MVC框架开发网站的好处是什么增强代码的复用性、缩短开发时间、更少的升级维护代价JAVAEE组件包括哪些,分别有什么用处Applets:图形化的Java组件通常在浏览器中执行客户端组件(Application client components):一个客户机上执行的Java程序网页组件(Web components):包括Servlets , JavaServer Pages and JavaServer Faces。在Web服务器上执行,提供的Java EE控制器和视图功能。EJB(企业JavaBeans Enterprise JavaBeans):在Web服务器上执行,用于业务逻辑和数据库访问的组件,支持分布式业务。a) JAVAEE容器包括哪些,分别有什么用处Applet 容器:通常由浏览器提供客户端容器:独立的Java运行环境 网页组件容器:由Java EE 服务器提供EJB容器:由Java EE 服务器提供b) JAVAEE提供的部分标准服务:l 什么是JSTL,什么地方会用到,请举例JSP标准标签库。功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。使用 JSTL 标记来避免在 JSP 页面中使用脚本编制元素。l 什么是Persistence,什么地方会用到,请举例持久性,将程序中的信息进行保存以供以后使用。应用实例:使用Java持久性API完成用户信息的持久化,客户端程序通过Java持久性API把数据库中的用户信息显示出来。l 什么是JTA,什么地方会用到,请举例JTA,即Java Transaction API,译为Java事务API。应用:使用JTA实现事务划分。l 什么是JMS,什么地方会用到,请举例l JMS(Java消息服务)是用于面向消息的中间件相互通信的应用程序接口。Java消息服务应用程序结构支持两种模型: 点对点或队列模型 发布者/订阅者模型3 JavaEE 打包文件的构成App.ear:ejb.jar,web.war,client.jar,res.jar,application.xml。Ejb.jar:EJB和ejb-jar.xmlWeb.awr:Servlet,JSP,web resource,web.xmlClient.jar:client.class,application-client.xmlRes.rar:native lib,adapter.jar,ra.xmlChapter2:servlet1 HTTP定义的哪4种客户端和服务器之间的交互方法?GET,POST,PUT,DELETE,对应查,改,增,删2 什么是servlet?servlet是一个J2EE应用程序的标准,服务器端的组件,它代表一个HTTP请求执行业务逻辑。(在服务处运行、基于java、由服务器的web容器管理)3 Servlet在MVC框架中的作用是什么?动态地构建一个响应,并把它传递给Web服务器。4 Servlet重定向(sendredirect)和分派(RequestDispatcher)的区别?请求转发是一个请求,而重定向是两个请求;请求转发后浏览器地址栏不会有变化,而重定向会有变化,因为重定向是两个请求;请求转发的目标只能是本应用中的资源,重定向的目标可以是其他应用;请求转发对AServlet和BServlet的请求方法是相同的,即要么都是GET,要么都是POST,因为请求转发是一个请求;重定向的第二个请求一定是GET;5 Servlet分派有哪两种模式(forwarding 和including),这两种模式的区别是什么?l 如果在AServlet中请求转发到BServlet,那么在AServlet中就不允许再输出响应体,即不能再使用response.getWriter()和response.getOutputStream()向客户端输出,这一工作应该由BServlet来完成;如果是使用请求包含,那么没有这个限制;l 请求转发虽然不能输出响应体,但还是可以设置响应头的,例如:response.setContentType(”text/html;charset=utf-8”);l 请求包含大多是应用在JSP页面中,完成多页面的合并;l 请求请求大多是应用在Servlet中,转发目标大多是JSP页面;6 Servlet之间共享对象有哪些方式?应用程序:由使用ServletContex对象的所有 Servlets 之中分享了。请求:在使用 HttpServletRequest对象并有相同请求的Servlets之中分享。会话:在由使用HttpSession对象并服务相同的客户的所有Servlets中分享。7 Filter(过滤器)是什么,可以用于什么场景,请举例。过滤器 (Filter): 实现对请求进行前处理或对Servlet响应进行后处理。通过过滤器可提高代码结构的可扩展、可重用性;多个过滤器可以被配置成一个过滤器链。 典型应用包括: 认证过滤器 日志和审计过滤器 图片格式转换过滤器 数据压缩过滤器 加密过滤器 XML处理过滤器 缓存(Caching)8 理解过滤器链(filter chain)的配置方式,给定一个过滤器链的配置文件,能够判定过滤器执行的先后顺序 (chapter 2 ppt. p66p67) 一个目标资源上,可能部署了多个过滤器,所以调用FilterChain类的doFilter()方法表示的是执行下一个过滤器的doFilter()方法,或者是执行目标资源!如果当前过滤器是最后一个过滤器,那么调用chain.doFilter()方法表示执行目标资源,如果不是最后一个过滤器,那么chain.doFilter()表示执行下一个过滤器的doFilter()方法。在之间指明Filter与URL地址或者Servlet之间的对应关系。9 什么是侦听器?侦听器可用于侦听哪些状态变化?举出一个采用的侦听器的例子。用于侦听并响应系统事件的特定Java类 侦听的事件: ServletContext 状态变化: 创建、销毁 ServletContext 共享变量变化: 添加、替代、删除 HttpSession 状态变化: 创建、销毁 HttpSession 共享变量变化: 添加、替代、删 ServletRequest 状态变化: 创建、销毁 ServletRequest 共享变量变化: 添加、替代、删除 案例: 在网页模块的启动和停止时运行特定的任务 监控一个用户会话的开始与结束 记录重要的事件 一个具体的应用情景: 当网页项目在服务器上开始运行时,侦听器被触发,并在此时建立一个数据库连接,并将该连接作为全局共享对象 每个Servlet都可以访问该连接对象。 当该网页项目停止运行时,侦听器被触发,并在此时关闭数据库连接Chapter3/4: JSP1 什么是JSPJSP全称是Java Server Pages. JSP运行在网页服务器上,根据用户的请求产生混合静态内容和动态内容的网页。2 JSP在MVC框架中的作用JSP在MVC框架中是主要作用是负责表示视图。3 JSP的运行模型。(转化为Servlet)JSP运行在Web容器中,Web容器将客户请求分发到JSP页面,处理完之后返回响应给客户端。JSP文件设计时是JSP文件,运行时又转化为Servlet代码。JSP文件会被容器转化成Servlet,然后编译运行。4 JSP的基本语法:(3种指令(directive),基本脚本(scripting))Pages directive(页面指令),include directive(包含指令)和taglib directive(标签指令)。下面加以说明:Pages directive作用是定义一些在页面编译的时候会用到的特有的属性;Include directive用在需要包含一个外部文件的地方;Taglib directive用来声明页面会使用的到的一些标签。基本脚本包括声明(声明变量和方法),脚本片段(java代码),注释(jsp引擎不执行),表达式(输出)。5 JSP中共享变量有哪四个作用域(scope)?(page,request, session, application)它们分别表示什么作用范围。Page:当前页面Request:当前请求周期Session:当前会话周期Application:整个应用6 什么是javabean? javabean在MVC框架中的作用? Jsp中如何引用javabean?JavaBean组件是一些可移植、可重用,并可以组织到应用程序中的Java类,相当于MVC中的 MJSP的一个重要特性就是可以用javaBean实现功能的扩展,以使jsp页面程序更干净简洁、利于维护。JavaBean可以很方便的用来捕获页面表单的输入并完成各种业务逻辑的处理。7 什么是表达式语言JSP 表达式语言(Expression Language,EL)是一种简化Java表达式的语言 EL中可以采用的隐含变量: pageContext pageScope requestScope sessionScope applicationScope param paramValues header headerValues cookie initParam8 表达式语言的基本语法 JSP 表达式: EL: $sessionS9 理解实验二中的Jsp代码。Chapter 5: JPA 什么是持久化,什么是持久化(Persistence):把应用的数据存储在数据库/文件中,在程序重新启动的时候,数据依然保存。ORM 对象关系映射(Object-Relation Mapping): ORM框架能够将Java对象映射到关系数据库,能够直接持久化复杂的Java对象。 实体类的标注信息的意义。 采用标注方法映射的实体Bean,在类的定义中还包含了标注的映射信息 理解一对一(One to One)、一对多(One to Many)、多对多(Many to Many)三种实体关系在实体类中的体现。 实体生命周期。实体管理器的四个和实体生命周期相关的操作:persist(), remove(), update(),merge()1. 生命周期 (1)New:新创建,还未和Persistence Context建立关联的对象。(2).Managed:持久化受管对象,已经和Persistence Context建立了关联的对象。(3).Datached:游离态离线对象,没有和Persistence Context建立关联的对象。(4).Removed:删除的对象,尚且和Persistence Context有关联,但是已经准备好从数据库中删除。2.相关操作 persist(Object X):使一个实体实例变成管理的和持久的。实体对象和数据库保持关联。 如果X是一个新的实体,会变成被管理的。 如果X是一个已经存在的被管理的实体,持久操作将被忽略。 如果X是一个删除的实体,它将变成被管理的。如果X是一个离线的对象,当调用persist操作的时候,将抛出EntityExistsException异常。 remove(Object X):使一个被管理的实体实例处于删除状态,在事务提交或调用em.flush()操作的时候,将被从数据库中删除 如果X是一个新建的实体,remove操作将被忽略。 如果X是一个被管理的实体实例,删除操作使得这个实体实例变成被删除状态。 如果X是一个离线的实体,调用remove操作的时候,将抛出异常如果X是一个删除的实体,remove操作将被忽略。refresh(Object X): 从数据库加载信息到对应的实体对象。使得实体对象的内容和数据库保持一致 Merge(Object X): 将用户对一个 detached 状态实体的修改进行保存,保存后将产生一个新的 managed 状态对象 Chapter 6: EJB1. 什么是EJB,采用EJB的好处Enterprise JavaBeans是一个用于分布式业务应用的标准服务端组件模型。好处是:采用Enterprise JavaBeans架构编写的应用是可伸缩的、事务性的、多用户安全的。可以部署在任何支持Enterprise JavaBeans规范的服务器平台,如jboss、weblogic、GlassFish等。EJB为我们提供了很多在企业开发中需要使用到的服务,如事务管理/安全/持久化/分布式等, 减少开发工作量.EJB提供了强制式分层解耦设计方法2. EJB包括哪三种类型的bean。分别的作用。1)会话bean (session bean) 负责与客户端交互,是编写业务逻辑的地方2)消息驱动bean (message-driven bean) 它是专门用于异步处理java消息的组件.具有处理大量并发消息的能力.3)实体bean(entity bean) EJB3.0 之后,被Java Persistent APIs(简称JPA)取代。3. 会话bean包括哪两种类型。无状态会话bean和有状态会话bean的区别?两种会话bean的生命周期的区别?1)无状态会话bean不保存会话状态每个EJB实例可供多个用户使用每个用户使用EJB实例时设置的值可能在该实例被其他用户使用时修改2)有状态会话bean保存会话状态每个bean实例只供一个用户使用所以性能开销比较大 用户为它设置的值是不会被其他用户修改,所以可以正确保存用户设置的值4. EJB的两种调用模式:(本地调用和远程调用)。分别用于什么场景本地调用:需要调用者和布署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 类。Chapter 7/8: Webservice1 什么是webservice?为什么需要webservice,web service架构带来的好处?有哪两种主要类型的web service?Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API(应用程序接口)。网络服务能满足这些需求:1.客户端和服务器很容易实现2.有标准的方法来传达和描述服务3.网络服务是完全地供应商、平台和语言中立的4.客户和服务之间几乎没有(或不)连接5.客户能对服务进行动态地连接,服务器不关心谁跟他们连接两种主要的web service类型1 SOAP based Web Service基于XML格式重量级网络服务2 RESTFUL Web Service轻量级网络服务2 Soap based Web service中的三个核心技术是什么 (SOAP, WSDL,UDDI)。分别的用途。 SOAP (Simple Object Access Protocol )简单对象访问协议 传输数据 WSDL (Web Services Description Language)服务描述语言 描述服务 UDDI (Universal Description Discovery and Integration )统一描述、发现和集成 发布和发现服务3 什么是soap?SOAP是一个轻量级的消息协议。为在一个松散的、分布的环境中使用XML对等地交换结构化和类型化的信息提供一个简单且轻量级的机制。 SOAP是最经常采用的通信协议的网络服务。SOAP用SOAP消息在SOAP节点之间传输信息。4 什么是WSDL? 一个描述web services的XML词汇WSDL表示绑定信息和位置信息来发布webservice模型网络服务如端点操作信息 WSDL是用来对WEB服务进行描述的服务的标准规范,它利用一种标准的方式描述了调用Web服务所需要的所有信息。应用程序可以从WSDL文件中提取这些详细信息,并生成调用Web服务需要的编程接口文件。5 什么是UDDI?主要包含有哪三类接口(inquiry, publishing, replication)。分别有什么用途。UDDI是一个发现平台规范的web service。利用它,应用程序可以把自己的功能提供给其他应用程序或查找并使用其他应用程序提供的服务。UDDI定义:一个信息模型的企业及其相关web service一个inquiry API用来通过搜索注册的企业和服务一个publishing API用来更新注册表一个replication protocol用来协同服务器6. 什么是REST? 什么是RESTFUL webservice? REST模型的核心原则是什么?1.REST - Representational State Transfer(表述性状态转移)软件体系结构类型的分布式系统,如万维网在介绍2000年在一个叫Roy Fielding 的医生的论文里(一个主要作者的HTTP协议规范)2.RESTful Web Service (REST API)基于RESTLightweight轻量级的简单的(相比于基于webservice的SOAP)3.Key Principles of REST Modeling:面向资源容易建模/容易识别和导航一切都是一种资源资源是由URL确定的网址统一的操作界面易于使用和理解/大多数语言支持 Response code: 响应代码200 Success成功POST - Create 201 Created已创建GET - Retrieve 400 Invalid Request无效的请求PUT - Update 401 Unauthorized未经授权的DELETE - Delete 404 Not Found未找到Etc.连通性 浏览所有的资源从一个单点/没有信息孤岛资源的连接关系 无状态缓存/可攀登的/负载平衡无状态存储在服务器或客户端无状态的消息:每个文件包含所有必要的信息的服务器理解客户的要求代表 用JSON或XML来交换数据Chapter 9:struts1 Struts的MVC框架构成将控制逻辑描述为action, 通过配置文件struts.xml来配置action的运行流程:根据不同的action的执行结果转向相应的JSP !2 Action? Result? Interceptor? Action是Struts2编程的核心部分,反映了对Web应用程序的功能需求。在MVC模式中担任控制部分的角色。 每个请求的动作都对应于一个相应的action,action处理的结果用于驱动数据流的走向。 Struts2的Action接口来源于WebWork,全包名为com.opensymphony.xwork2.Action。 ActionSupport是一个让action类能够更快开始工作的基类,该类实现了如处理输入校验、访问国际化资源包等方法。Result 是Action执行的结果,根据该结果决定下一跳处理。 当一个action执行完毕之后,它将返回一个字符串返回码,譬如“SUCCESS”“INPUT”或者其他“返回代码”。 Action 不同返回代码所对应的下一步动作,称为该Action的Result。 struts.xml定义了每个Action的不同“返回代码”的result.。Struts2 支持许多种不同的result类型,比如转发(forward)或重定向(redirect)到另一个jsp或action 。 常用的结果类型: 1 Dispatcher (默认类型) 转发到另一个Jsp 2redirect 重定向到另一个Jsp 3chain 转发到另一个Action 4. redirectAction 重定向到另一个ActionStruts2的interceptor实现相对简单。当请求到达Struts2的FilterDispatcher时,Struts2会查找配置文件struts.xml,并根据其配置实例化相对的interceptor对象,然后串成一个列表(list),最后一个一个地调用列表中的拦截器。自定义一个拦截器需要3个步骤:(1) 自定义一个实现Interceptor接口的类。(2) 在struts.xml中声明上一步中定义的拦截器。(3) 在struts.xml中,在需要使用的Action中引用上述定义的拦截器Struts2包含了许多内置的interceptor,它们提供了很多核心功能和可选的高级特性。内置拦截器:(1)timer为action计时(2)logger 为aciton提供日志(3)Validation提供字段校验等等。3 理解Struts.xml中关于action, result, interceptor的配置。Structs.xml格式 hello.j

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论