>
xml地图|网站地图|网站标签 [设为首页] [加入收藏]

x6163银河官方网站Entity Bean采用BMP + 本地接口,

- 编辑:银河至尊官网网址 -

x6163银河官方网站Entity Bean采用BMP + 本地接口,

6- 万能Servlet或者万能JSP
J2EE为我们提供了Web层丰富的技术选择,Servlet或者JSP都只是其中一种,虽然它很强大,但是也不应该由它一个来承担所有MVC三个部分的功能。现实中我们的Struts很好的规范了这个问题:Servlet负责调度,专门的Action负责处理逻辑,而JSP用于用户界面显示。JSP和Servlet本质上是同一个东西,只是从不同的角度来处理问题,它们各有所长,互为补充。

12. EJB 的激活机制

以 Stateful Session Bean 为例:其 Cache 大小决定了内存中可以同时存在的Bean实例的数量,根据MRU或NRU算法,实例在激活和去激活状态之间迁移,激活机制是当客户端调用某个 EJB 实例业务方法时,如果对应 EJB Object 发现自己没有绑定对应的 Bean 实例则从其去激活 Bean 存储中(通过序列化机制存储实例)回复(激活)此实例。状态变迁前会调用对应的 ejbActive 和 ejbPassivate 方法。

2- 过度分层
J2EE这个规范肤浅的来看,就是为我们定义了很多“层”,然后还有很多分工明确的“角色”,加上J2EE的蓝本应用程序就分了很多“层”,以至于大家都觉得J2EE的应用就应该是很多层的,其实不然,需要具体情况具体分析。

4. Tomcat 服务器的默认端口是多少?怎样修改 tomcat 的端口?

答:默认端口为 8080,可以通过 service.xml 的 Connector 元素的 port 属性来修改端口

4- 过度使用有状态的Session Bean
一般来讲,一个Session Bean实例,如果它是有状态的,那么它只对某个固定的用户服务,如果是无状态的,则可以满足不同用户的调用。这有点类似(只是有点类似)一个类的静态方法和非静态方法的区别。我们在实际应用中,应该尽量避免使用有状态的Session Bean,除非特别必要。我们可以把状态保留在Session Bean之外,如Web容器的session对象或者我们自定义的类中,而不是完全依赖有状态的Session Bean去帮我们做。

2. 描述 J2EE 框架的多层结构,并简要说明各层的作用。

答:

  1. Presentation layer(表示层)

a. 表示逻辑(生成界面代码)

b. 接收请求

c. 处理业务层抛出的异常

d. 负责规则验证(数据格式,数据非空等)

e. 流程控制

  1. Service layer(服务层/业务层)

a.封装业务逻辑处理,并且对外暴露接口

b.负责事务,安全等服务

  1. Persistence layer(持久层)

a 封装数据访问的逻辑,暴露接口

b.提供方便的数据访问的方案(查询语言,API,映射机制等)

4)Domain layer(域层)

a. 业务对象以及业务关系的表示

b. 处理简单的业务逻辑

c. 域层的对象可以穿越表示层,业务层,持久层

软件分层结构使得代码维护非常方便,设计明确,各层独立,专注自己擅长的领域。

3- 频繁的往返调用
EJB的看似简单造成我们经常忽略可能在使用过程中出现的远程调用,比如有时候为了更新一条记录,每个字段都是远程的去set,大大增加了不必要的开销,于是我们意识到在调用中使用DTO是一个建议遵循的方案。

1. J2EE 是什么?它包括哪些技术?

答:从整体上讲,J2EE 是使用 Java 技术开发企业级应用的工业标准,它是 Java 技术不断适应和促进企业级应用过程中的产物。适用于企业级应用的 J2EE,提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的开发、管理和部署。J2EE 是一个标准,而不是一个现成的产品。

主要包括以下这些技术:

  1. Servlet

Servlet是Java平台上的CGI技术。Servlet在服务器端运行,动态地生成Web页面。与传统的CGI和许多其它类似CGI的技术相比,Java Servlet具有更高的效率并更容易使用。对于Servlet,重复的请求不会导致同一程序的多次转载,它是依靠线程的方式来支持并发访问的。

  1. JSP

JSP(Java Server Page)是一种实现普通静态 HTML 和动态页面输出混合编码的技术。从这一点来看,非常类似 Microsoft ASP、PHP等技术。借助形式上的内容和外观表现的分离,Web 页面制作的任务可以比较方便地划分给页面设计人员和程序员,并方便地通过 JSP 来合成。在运行时态,JSP 将会被首先转换成 Servlet,并以 Servlet 的形态编译运行,因此它的效率和功能与 Servlet 相比没有差别,一样具有很高的效率。

  1. EJB

EJB 定义了一组可重用的组件:Enterprise Beans。开发人员可以利用这些组件,像搭积木一样建立分布式应用。

  1. JDBC

JDBC(Java Database Connectivity,Java 数据库连接) API 是一个标准 SQL(Structured Query Language,结构化查询语言)数据库访问接口,它使数据库开发人员能够用标准 Java API 编写数据库应用程序。JDBC API 主要用来连接数据库和直接调用 SQL 命令执行各种 SQL 语句。利用 JDBC API 可以执行一般的 SQL 语句、动态 SQL 语句及带 IN 和 OUT 参数的存储过程。Java 中的 JDBC 相当于 Microsoft 平台中的 ODBC (Open Database Connectivity)。

J2EE应用中有一些常见的毛病和错误的观念,按照时下流行的说法,叫反模式。稍不注意,我们自己也会犯,所以大概整理一下,一个是备忘,也是供需要的朋友参考:
1- 无EJB不叫J2EE
EJB一直发展到今天的2.1仍然被广为诟病,它提供了很多时候我们并不需要的东西,而且我们在很多情况下一旦选用EJB就没有其他的方式不去使用那些笨重的功能。但是很多所谓范例让我们有一种错觉,好像不用EJB就不是J2EE应用。有一些折中的方案是使用Session Fa?ade模式,Entity Bean采用BMP + 本地接口,然后提供一层无状态的Session Bean,采用远程和本地接口,这样的设计模式,我想,多半是出于无奈。如今,甚至我们经常都能看到不使用EJB的言论,炒得很火的Spring则为这种完全不用EJB开发J2EE项目提供了实际的、强有力的佐证。

13. EJB 的几种类型

会话(Session)Bean ,实体(Entity)Bean 消息驱动的(Message Driven)Bean
会话 Bean 又可分为有状态(Stateful)和无状态(Stateless)两种
实体 Bean 可分为 Bean 管理的持续性(BMP)和容器管理的持续性(CMP)两种

3- 频繁的往返调用
EJB的看似简单造成我们经常忽略可能在使用过程中出现的远程调用,比如有时候为了更新一条记录,每个字段都是远程的去set,大大增加了不必要的开销,于是我们意识到在调用中使用DTO是一个建议遵循的方案。

电子书下载地址: http://wiki.jikexueyuan.com/project/java-interview-bible/

4- 过度使用有状态的Session Bean
一般来讲,一个Session Bean实例,如果它是有状态的,那么它只对某个固定的用户服务,如果是无状态的,则可以满足不同用户的调用。这有点类似(只是有点类似)一个类的静态方法和非静态方法的区别。我们在实际应用中,应该尽量避免使用有状态的Session Bean,除非特别必要。我们可以把状态保留在Session Bean之外,如Web容器的session对象或者我们自定义的类中,而不是完全依赖有状态的Session Bean去帮我们做。

7. 假设 web 应用的文档根目录为 MyApp,那么可以从哪里找到 database.jar 文件。

A. MyApp目录下
B. MyAppimages目录下
C. MyAppWEB-INF目录下
D. MyAppWEB-INFlib目录下

答:D

Web 工程的 lib 是放置 .jar 文件的地方。

6- 万能Servlet或者万能JSP
J2EE为我们提供了Web层丰富的技术选择,Servlet或者JSP都只是其中一种,虽然它很强大,但是也不应该由它一个来承担所有MVC三个部分的功能。现实中我们的Struts很好的规范了这个问题:Servlet负责调度,专门的Action负责处理逻辑,而JSP用于用户界面显示。JSP和Servlet本质上是同一个东西,只是从不同的角度来处理问题,它们各有所长,互为补充。

11. 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 类

5- 过度会话
Web容器的session对象是个好东西,用起来也很方便和直截了当,这造成了我们很多人对它的滥用,什么东西都往里面放。这有两个突出的问题,一个是资源浪费;另一个,万一Web服务器崩溃,那些本来需要持久化的数据就丢失了。我们需要考虑好,哪些数据本可以用request的,哪些数据又是需要持久化到数据库的,等等,不能一味依赖session。

9. EJB 类库存在于 Java 的哪个版本中?(选择1项)。

A. J2SE

B. J2EE

C. J2ME

D. J2NE

解答:B

Java 分为三个体系

x6163银河官方网站Entity Bean采用BMP + 本地接口,J2EE 是使用 Java 技术开发企业级应用的工业标准。JavaSE(Java2 Platform Standard Edition,java平台标准版),

JavaEE(Java 2 Platform,Enterprise Edition,java平台企业版),

JavaME(Java 2 Platform Micro Edition,java平台微型版)。

EJB 属于 JavaEE 版本

J2EE应用中有一些常见的毛病和错误的观念,按照时下流行的说法,叫反模式。稍不注意,我们自己也会犯,所以大概整理一下,一个是备忘,也是供需要的朋友参考:
1- 无EJB不叫J2EE
EJB一直发展到今天的2.1仍然被广为诟病,它提供了很多时候我们并不需要的东西,而且我们在很多情况下一旦选用EJB就没有其他的方式不去使用那些笨重的功能。但是很多所谓范例让我们有一种错觉,好像不用EJB就不是J2EE应用。有一些折中的方案是使用Session Fa?ade模式,Entity Bean采用BMP + 本地接口,然后提供一层无状态的Session Bean,采用远程和本地接口,这样的设计模式,我想,多半是出于无奈。如今,甚至我们经常都能看到不使用EJB的言论,炒得很火的Spring则为这种完全不用EJB开发J2EE项目提供了实际的、强有力的佐证。

10. 在 J2EE 中属于 Web 层的组件有(选择1项)

A. HTML

B. EJB

C. Applet

D. JSP

解答:D

2- 过度分层
J2EE这个规范肤浅的来看,就是为我们定义了很多“层”,然后还有很多分工明确的“角色”,加上J2EE的蓝本应用程序就分了很多“层”,以至于大家都觉得J2EE的应用就应该是很多层的,其实不然,需要具体情况具体分析。

8.要创建一个 EJB,必须要至少编写哪些 Java 类和接口?

A. 定义远程(或业务)接口

B. 定义本地接口

C. 定义Bean接口

D. 编写Bean的实现

解答:ABC

5- 过度会话
Web容器的session对象是个好东西,用起来也很方便和直截了当,这造成了我们很多人对它的滥用,什么东西都往里面放。这有两个突出的问题,一个是资源浪费;另一个,万一Web服务器崩溃,那些本来需要持久化的数据就丢失了。我们需要考虑好,哪些数据本可以用request的,哪些数据又是需要持久化到数据库的,等等,不能一味依赖session。

5. EJB的优点有哪些?(选择 2 项)

A、技术领先 B、价格低廉 C、性能优越 D、强大的容器支持

解答:CD

6. 无状态会话 Bean、有状态会话 Bean、CMP 与 BMP 中,哪一种 Bean 不需要自己书写连接数据库的代码?

A、无状态会话Bean
B、有状态会话Bean
C、CMP
D、BMP

答:C

BMP 是在 Bean 中完成对数据库 JDBC 的各种调用

CMP 是由 EJB 容器自动完成对数据库的操作

会话 Bean 主要处理业务逻辑

3. EJB 包含哪 3 种 bean

答:session bean(会话 bean), entity bean(实体 bean), message bean(消息 bean)

本文由技术交流发布,转载请注明来源:x6163银河官方网站Entity Bean采用BMP + 本地接口,