中科院计算所培训中心.doc_第1页
中科院计算所培训中心.doc_第2页
中科院计算所培训中心.doc_第3页
中科院计算所培训中心.doc_第4页
中科院计算所培训中心.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。EJB包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JAT等技术实现。SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。对于客户机,EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体。Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean ,这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的 Stateful Session Bean 的实体。Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫 Stateless Session Bean 的时候,EJB Container 并不会找寻特定的 Stateless Session Bean 的实体来执行这个 method。换言之,很可能数个使用者在执行某个 Stateless Session Bean 的 methods 时,会是同一个 Bean 的 Instance 在执行。从内存方面来看, Stateful Session Bean 与 Stateless Session Bean 比较, Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态。2、同步和异步有何异同,在什么情况下分别使用他们?举例说明。如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。3、EJB与JAVA BEAN的区别?Java Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。Enterprise Java Bean 相当于DCOM,即分布式组件。它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理,EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。4、EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?SessionBean:Stateless Session Bean 的生命周期是由容器决定的,当客户机发出请求要建立一个Bean的实例时,EJB容器不一定要创建一个新的Bean的实例供客户机调用,而是随便找一个现有的实例提供给客户机。当客户机第一次调用一个Stateful Session Bean 时,容器必须立即在服务器中创建一个新的Bean实例,并关联到客户机上,以后此客户机调用Stateful Session Bean 的方法时容器会把调用分派到与此客户机相关联的Bean实例。EntityBean:Entity Beans能存活相对较长的时间,并且状态是持续的。只要数据库中的数据存在,Entity beans就一直存活。而不是按照应用程序或者服务进程来说的。即使EJB容器崩溃了,Entity beans也是存活的。Entity Beans生命周期能够被容器或者 Beans自己管理。EJB通过以下技术管理实务:对象管理组织(OMG)的对象实务服务(OTS),Sun Microsystems的Transaction Service(JTS)、Java Transaction API(JTA),开发组(X/Open)的XA接口。5、应用服务器有那些?BEA WebLogic Server,IBM WebSphere Application Server,Oracle9i Application Server,jBoss,Tomcat6、说出数据连接池的工作机制是什么?J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。7、编程题: 写一个Singleton出来。Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。一般Singleton模式通常有几种种形式:第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。public class Singleton private Singleton() /在自己内部定义自己一个实例,是不是很奇怪? /注意这是private 只供内部调用 private static Singleton instance = new Singleton(); /这里提供了一个供外部访问本class的静态方法,可以直接访问 public static Singleton getInstance() return instance; 第二种形式: public class Singleton private static Singleton instance = null;public static synchronized Singleton getInstance() /这个方法比上面有所改进,不用每次都进行生成对象,只是第一次 /使用时生成实例,提高了效率!if (instance=null)instancenew Singleton();return instance; 其他形式:定义一个类,它的构造函数为private的,所有方法为static的。一般认为第一种形式要更加安全些8、J2EE是技术还是平台还是框架? J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。J2EE也是一个框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技术。9、EJB的角色和三个对象一个完整的基于EJB的分布式计算结构由六个角色组成,这六个角色可以由不同的开发商提供,每个角色所作的工作必须遵循Sun公司提供的EJB规范,以保证彼此之间的兼容性。这六个角色分别是EJB组件开发者(Enterprise Bean Provider) 、应用组合者(Application Assembler)、部署者(Deployer)、EJB 服务器提供者(EJB Server Provider)、EJB 容器提供者(EJB Container Provider)、系统管理员(System Administrator)三个对象是Remote(Local)接口、Home(LocalHome)接口,Bean类10、EJB规范规定EJB中禁止的操作有哪些? 1.不能操作线程和线程API(线程API指非线程对象的方法如notify,wait等),2.不能操作awt,3.不能实现服务器功能,4.不能对静态属生存取,5.不能使用IO操作直接存取文件系统,6.不能加载本地库.,7.不能将this作为变量和返回,8.不能循环调用。11、remote接口和home接口主要作用remote接口定义了业务方法,用于EJB客户端调用业务方法。home接口是EJB工厂用于创建和移除查找EJB实例12、bean 实例的生命周期对于Stateless Session Bean、Entity Bean、Message Driven Bean一般存在缓冲池管理,而对于Statefull Session Bean存在Cache管理,通常包含创建实例,设置上下文、创建EJB Object(create)、业务方法调用、remove等过程,对于存在缓冲池管理的Bean,在create之后实例并不从内存清除,而是采用缓冲池调度机制不断重用实例,而对于存在Cache管理的Bean则通过激活和去激活机制保持Bean的状态并限制内存中实例数量。13、EJB的激活机制以Stateful Session Bean 为例:其Cache大小决定了内存中可以同时存在的Bean实例的数量,根据MRU或NRU算法,实例在激活和去激活状态之间迁移,激活机制是当客户端调用某个EJB实例业务方法时,如果对应EJB Object发现自己没有绑定对应的Bean实例则从其去激活Bean存储中(通过序列化机制存储实例)回复(激活)此实例。状态变迁前会调用对应的ejbActive和ejbPassivate方法。14、EJB的几种类型会话(Session)Bean ,实体(Entity)Bean 消息驱动的(Message Driven)Bean会话Bean又可分为有状态(Stateful)和无状态(Stateless)两种实体Bean可分为Bean管理的持续性(BMP)和容器管理的持续性(CMP)两15、在weblogic管理制台中对一个应用域(或者说是一个网站,Domain)进行jms及ejb或连接池等相关信息进行配置后,实际保存在什么文件中?保存在此Domain的config.xml文件中,它是服务器的核心配置文件16、EJB需直接实现它的业务接口或Home接口吗,请简述理由。远程接口和Home接口不需要直接实现,他们的实现代码是由服务器产生的,程序运行中对应实现类会作为对应接口类型的实例被使用。17、请对以下在J2EE中常用的名词进行解释(或简单描述)(1)Web容器给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接更容器中的环境变量接口交互,不必关注其它系统问题。主要有WEB服务器来实现。例如:TOMCAT、WEBLOGIC和WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEB APPLICATION 标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。(2)EJB容器Enterprise java bean 容器。更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。(3)JNDI(Java Naming & Directory Interface)JAVA命名目录服务。主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。(4)JMS(Java Message Service)JAVA消息服务主要实现各个应用程序之间的通讯。包括点对点和广播。(5)JTA(Java Transaction API)JAVA事务服务提供各种分布式事务服务。应用程序只需调用其提供的接口即可。(6)JAF(Java Action FrameWork)JAVA安全认证框架提供一些安全控制方面的框架。让开发者通过各种部署和自定义实现自己的个性安全控制策略。(7)RMI/IIOP(Remote Method Invocation /internet对象请求中介协议)他们主要用于通过远程调用服务。例如,远程有一台计算机上运行一个程序,它提供股票分析服务,我们可以在本地计算机上实现对其直接调用。当然这是要通过一定的规范才能在异构的系统之间进行通信。RMI是JAVA特有的。18、实例讲解如何穿越防火墙访问EJBs 编写一个可以穿越防火墙来访问EJBs的J2EE应用程序?这会很麻烦,开发人员必须用各种迂回的方法,而没有一种是“特别好的”。 (1)开发人员通常写一个servlet来截取HTTP请求,并将它们导向到EJBs,这种方法很不正规。(2)另一种方法是运用信道(tunneling)技术,如HTTP上的RMI,这种方法会给性能带来很大的影响。 (3)除了上述的两种方法外,还有一种更好的方法。通过运用Java Secure Socket Extension(JSSE),你就可以很好地解决这个问题。 J2EE EJB试 题(可以多选)试题1:J2EE是( ) A :平台 B: 协议 C:规范 D:语言试题2:在目前,支持J2EE的主要语言是( )A:JAVA B:C+ C:SQL D:JBulider试题3:J2EE平台的搭建主要包括( )A:J2SE JDK的安装 B:J2EE服务器的安装 C: 编辑器的安装 D:常用工具的安装试题4:J2EE程序的主要构成部分是( ),它是一种具有相关功能和服务的单元,还可以和其他组件进行交互。A:组件 B:文件 C:类 D:服务器试题5:J2EE可以处理多层应用程序,J2EE主要处理( )层应用程序。A:1 B:2 C:3 D:4试题6:HTML是浏览器/客户端与其他技术如JAVA和网络协议等之间的媒介语言。客户端和服务器之间的大部分工作都是通过HTML( )完成的。它通常包含一个或多个HTML组件。A:表单 B:表格 C:标签 D:超链接试题7:在建立到服务器的连接后,服务器查看请求的第一行,确定是否可以处理该请求。然后,服务器在内部处理该请求并产生一个响应。该响应包含有关请求成功的信息,这些信息包括:( )( )( )A:报头 B:状态行 C:标题 D:正文试题8:Web程序运行时,一个客户的请求动作可能会跟他之前的请求有联系,也就是说Web程序需要维持一定的状态。Web容器通过会话机制将一个客户的一系列Web请求联系起来。Web容器通过三种途径实现会话:分别是( )( )( )A: COOK机制 B:URL重写 C:SESSION机制 D:隐藏表单输入试题9:过滤器能够对请求和响应的( )和( )进行操作的特殊Web组件。与一般Web组件(Servlet/JSP)不同的是,过滤器自身并不直接生成Web响应,若干个过滤器可以依次对一个Web资源的请求和响应进行作用。A:头属性 B:内容体 C:请求 D:问答试题10:EJB架构定义了三种类型的企业BEAN对象:分别是:( )( )( )A:会话对象 B:实体对象 C:消息驱动对象 D:无状态对象试题11:为了实现不同系统的EJB环境间的合作,EJB2.0规范需要会话BEANS和实体BEANS的J2EE客户调用端支持基于( )协议兼容的实现。A:JMS B:SMTP C:HTTP D:CORBA/IIOP试题12:HTTPR SERVLET提供下列核心特征:( )对象用于扑捉通过WEB页面提交的请求信息,其中包括可用的数据,协议类型和安全级等。( )对象用于在服务器中处理用户会话信息。这是一个特定于用户对象,在SERVLET执行期间,SERVLET开发人员可以增加和删除其中的用户信息。( )对象用于处理响应信息,SERVLET开发人员可以把回送客户机的任何响应信息写到其中,其余的处理过程由SERVLET引擎负责。A:HTTPREQUEST B:HTTPCONFIGC:HTTPSESSION D:HTTPRESPONSE试题13:JAVA消息服务(JMS)是一套规范为开发人员提供了一组标准的JAVA API,用于企业级的消息处理,如可靠的( )等底数方面的应用。JMS是企业级消息处理的JAVA标准,使JAVA应用和组件能够发送和接受消息。A:排队机制 B:点对点通信 C :发布和订阅通讯 D:散列试题14:Jar命令:( )表示要创建的新的文件,( )表示jar采用显示方式工作,这意味着jar在运行时应显示出所作的每一个细节动作。( )表示后随的文件名就是准本要创建的软件包的名字。( )表示解包。通配符“*”号意味着应包括当前目录下的所有文件以及子目录。A:C B:V C:F D: X试题15:部署文件是EJB的重要部分,简单的说,部署文件就是EJB的说明文件,这个文件由服务器容器调用,服务器根据部署文件的说明来管理EJB.部署文件至少有两个文件,( )和( ),前者为EJB自身的一些特征,如名称,组成等。后者是和EJB部署相关的描述。A:ejb-jar.xml B:weblogic-ejb-jar.xml C:jar.xml D:ejb.xml试题16:JavaBean与微软的ActiveX的不同:JavaBean是与()的,而微软的ActiveX是基于Windows系统平台的。A:平台无关 B:跨语言 C:跨地域 D:基于二进制试题17:JavaBean继承在现有Java功能中还有一个重要的方面,就是持久性,它保存对象并获得对象的内部状态。通过Java提供的( )机制。A:保存 B:缓冲 C:垃圾处理 D:序列化试题18:可视化的Bean应该从( )或者( )类来继承。A:Component B:sessionbean C:Canvas D:ejbobject试题19:JavaBean的属性与一般Java程序中所指的属性,或者说与所有面向对象的程序设计语言中对象的属性是一个概念,在程序中的具体体现就是类中的变量。在JavaBean的设计中,按照属性的不同作用又细分为几类:( )( )( )( )A:单值属性 B:索引属性 C:关联属性 D:限制属性试题20:组件与组件、组件与外界之间通过( )的传递进行通信,构成一个应用。A:函数 B:事件 C:变量 D:调用试题21:组件和容器:组件是一个可重用的软件构件,它是一个预先构建的封装好的代码模块,它能够与其他组件或其他代码一起很快的生成定制的应用程序。( )定义组件的基本的体系结构,指定它的接口的结构,及它与它的容器及其他组件交互的机制。A:变量 B:组件模型 C:部属描述符 D:容器试题22:会话EJB:主要用来描述商业处理( ),它可以作为其他Bean的客户端,调用其他Bean的方法。A:数据 B:结果 C:过程 D:结构试题23:实体Bean代表一个( )。实体Bean代表某个具体的商业实体,它的状态需要永久性储存, 是持久的,允许共享访问。实体Bean也有两种:Bean管理和容器管理。A:过程 B:结构 C:结果 D:数据对象试题24:消息驱动Bean生存在( )中并由容器管理。它没有Home和Remote接口。因为它不直接与客户交互。消息驱动Bean是JMS消息驱动器。客户把消息发布给JMS,JMS和EJB容器协作,把消息发送给消息驱动Bean。A:程序 B:服务器 C:EJB容器 D:客户端试题25:对象之间存在一定的关系。在CMP的情况下,容器处理( ),因此,容器也需要处理CMP实体Bean之间的关系。A:暂时 B:持久逻辑 C:永久 D:等值试题26:Java消息服务(Java Message Service)是一组标准的Java API,用于企业级的消息处理,使Java应用和组件能够( )和( )消息。如可靠的队列机制,点对点通信以及基于主题的发布/订阅通信等应用。A:调用 B:发送 C:接收 D:处理试题27:部署和运行消息Bean时,可以在配置描述文件中指定一个JMS队列或主题,EJB容器将把消息Bean注册为一个消息监听器,当消息到达有关的JMS目的时,EJB容器将取回一个消息Bean实例,使用新收到的消息调用消息的( )方法。A:Message() B:SendMessage() C:PostMessage() D:onMessage()试题28:实体EJB用在处理客户端请求大量、( )的情况,它在实现业务逻辑的同时,作为数据库的一个缓冲。在服务器大的情况下,减轻数据库的负担,提高业务处理能力。A:并发 B:密集 C:多进程 D:多线程试题29:每个实体对象有一个唯一的标示,如果两个实体对象有相同的主键,则他们是同一的。EJB框架允许主键是任何合法类型的类。拥有实体对象远程接口引用的客户端可以通过( )方法获取主键标识。和引用联系的对象标示在被引用期间不会改变。A:init() B:destroy() C:getPrimaryKey() D:Service()试题30:( )接口:定义了向Servlet提供配置信息的方法。Servlet容器实例化一个实现该接口的对象。A:ServletContent B:ServletConfig C:Serialize D:Servlet试题31:同步:在一个对象上获得监听器,以便对象每次只能被一个线程读写。通过表示符号( )如果共享变量可以被独立的线程读写,或者变量本身不是线程安全的话,就要考虑将它同步。A:cookie B:synchronized C:application D:session试题32Servlet容器只创建一个Servlet实例,每一个对( ), ( ),( )方法的调用都是从Servlet线程池中获取自己的线程。因此尽管只有一个实例,但每个请求都由它自己的线程处理且所有这些线程可以同时执行。因为对这些方法的调用都在其自己的线程内执行,所以这些方法的局部变量不会被请求所共享,它们是自动线程安全的。A:service() B:doPost() C:doGet() D:Send()试题33( )对象允许将请求转发到其他服务器资源,它还允许有计划的把其他服务器资源生成的输出引用到Servlet内部。A:RequestDispacher B:Dispatcher C:Request D:ServletContext试题34( )是HTTP客户和HTTP服务器之间传送的小块信息。通过它可以将状态添加到无状态的HTTP协议中,从而让服务器唯一识别每个客户并维护特定的信息。A:Session B:Bean C:EJB D:Cookie试题35JDBC是Java规定的一套数据库操作的接口,它们不考虑不同数据库的( )的差异,因此从程序员的角度来看,访问任何数据库都是一样的。A:存储 B:调用 C:读取 D:格式试题36JSP标记符可以分为三大类。:( )( )( )A:表达式 B:指令 C:教本元素 D:动作试题37组成JSP页面的单元包括:( ),( ),( )以及三种脚本:声明(declartions),程序段(scriptlets)和表达式(expressions)A:注释 B:模板文本 C:动作 D:标签试题38jsp规范定义了三种指令:( ) ( ) ( )A:page B:taglib C:action D:include试题39动作可能影响当前的输出流或者用来创建,使用,改变对象。JSP规范中包含一些标准的动作类型,新的动作类型由( )指令定义。A:include B:page C:form D:taglib试题40脚本元素用于操作对象和执行影响生成内容的计算。由三种脚本:( ),( )和( )A:声明 B:程序段 C:定义 D:表达式试题41JSP类和接口包含在( )和( )软件包中。A:javax.servlet.jsp B:java.servlet.jsp C:java.servlet.jsp.tagext D:javax.servlet.jsp.tagext试题42与( )作用域不同,request作用域对象对所有请求被转发的页面都是有效的。Request作用域对象储存

温馨提示

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

评论

0/150

提交评论