Java EE 复习题集

一、填空题

(1)第一章 概述

大多数应用,从PC机上的简单报表程序到大型机上的复杂计算,都由三部分组成:大多数应用,从PC机上的简单报表程序到大型机上的复杂计算,都由三部分组成:表现层,业务逻辑层,数据访问层。
Java EE为满足开发多层体系结构的企业级应用的需求,提出“组件-容器 ”的编程思想。Java EE应用的基本软件单元是 JavaEE 组件 。 基本软件单元的运行环境被称为 容器 。
两层体系结构应用程序分为应用层 和 服务器层。
所谓的企业级应用程序,并不是特指为企业开发的应用软件,而是泛指那些为 大型组织部门 创建的应用程序。
在三层分布式企业应用程序中,包括 应用层 、 应用服务器层 、 数据服务器层 三层。
Java EE客户端组件既可以是一个 Web浏览器 、一个 Applet ,也可以是一个 应用程序 。
Java EE web组件包括 servlet 和 JSP 。
Java EE有两种类型的EJB组件: 会话Bean 和 消息驱动Bean 。
Java EE 6提供的组件主要包括三类: 客户端组件 、 Web组件 、 业务组件 。
(2)第三章 servlet

Servlet组件在进行重定向时,需要使用 ServletResponse 接口的方法是 sendRedirect() 。
httpServletRequest提供了两个方法用于从请求中解析出上传的文件: Part getPart(String name) 和 Collection getParts() 。
一个Servlet的配置参数保存在 ServletConfig 对象中,这个配置对象(能/不能) 不能 被其他Servlet访问。
MIME的全称是 Multimedia Internet Mail Extension(多媒体网络邮件扩展) , ServletResponse中响应正文的默认MIME类型为 text/plain , 而HttpServetResponse中的响应正文的默认MIME类型为 text/html 。
PDF文件的MIME类型是 application/pdf , Microsoft Word文档的类型是 application/msword 。在Servlet中设置MIME类型应使用 HttpServletResponse 对象的方法 setContentType() 。
所有的Servlet都必须实现下面的两个接口之一: HttpServlet 和 GenericServlet 。
HTTP协议是一种 无状态 协议,服务器不记录关于客户的任何信息。
在Web程序设计中,客户端以表单方式向服务器提交数据是最常见的方法。表单数据的提交方法有两种: Get 和 Post 。
常见会话跟踪技术有 Cookie 、 URL重写 和 隐藏表表单域 。
(3)第四章 JSP

JSP显式注释的语法形式: ;JSP隐式注释的语法形式: <%–注释–%> 。
JSP内置对象的作用范围有四种 page , request , session , application 。
JSP的include动作组件的语法形式:
JSP的forward动作组件的语法形式:
JSP的param动作组件的语法形式:
JSP页面中声明变量的基本格式是: <%!变量声明%> 。
JSP页面除了普通HTML代码之外,还主要有如下三种成分: 脚本元素 、 指令 、 动作 。
表达式语言EL提供两种不同的存取器: 点运算符“ . ” 和 方括号" [ ] " 。
JSP的默认字符编码是 ISO-8859-1 。
(4) 第五章 JavaBean

在JSP页面中,与Java Bean有关的标记有三个: jsp:useBean 、 jsp:setProperty 、 jsp:getProperty 。
JavaBean的生命周期范围有四种是: page 、 request 、 session 、 application 。
Java Bean在标记 jsp:userBean 中利用 Scope 属性声明Java Bean的生命周期范围
jsp:getProperty用法的一般形式:
jsp:setProperty用法的一般形式:
当JavaBean的某个属性为null时,使用表达式语言获得的信息是空字符串还是null对象?答案是 空字符串 。
JSP能够利用表达式语言访问JavaBean的属性,(也能/不能) 不能 利用表达式语言设置JavaBean的属性。
(5)第六章 JSF

JSF是一个基于 MVC 架构的框架,其中模型角色由 Managed Bean 承担,实现具体的业务逻辑,视图角色由 XHTML页面 承担,实现信息展示和与用户的交互,控制角色由 JSF框架 承担,实现具体的控制逻辑。
Managed Bean与普通JavaBean的区别,Manged Bean在类的声明前增加了一个注解 @Managed 。
在JSF应用中,当接收到客户端的JSF请求后,是由JSF框架中的 核心控制组件 FaceServlet 对请求进行统一处理。
JSF 2.0将image, css, javascript等资源统一放到web应用根目录下的 resource 中。
JSF 2.0提供了定义和访问资源的标准机制,列举两个访问资源的JSF标记:
JSF提供了两种类型的导航组件: 按钮 和 链接 。
在JSF框架下,视图都是以 xhtml 的形式存在,它们采用 Facelets 作为视图定义语言。
JSF框架的导航组件中,链接标记有三种:
JSF在转换和验证时都有可能会产生错误信息,这些错误信息可以通过标记显示出来,而这些预定义的错误信息有时是没有本地化的,为了对这些消息进行本地化设置,可以修改属性 converterMassage 、 validatorMassage 、 requireMassage ,让这些属性指向本地化资源即可。
CDI的全称是 上下文注入依赖(Contexts And Dependency Injection) ,CDI Bean是Java EE 6规范的一项重大功能特性之一,提供了一种更加强大的托管Bean模型。与Managed Bean不同的是,这种托管Bean是由 Java EE应用服务器 来管理和控制的。
JSF中立即事件类型通过设置组件的 immediate 属性来设置,它会将提前进行 事件处理操作 而无须等到调用应用阶段。
JSF的核心标记库有四种: core或f: 、 html或h: 、 facelets或ui: 、 composite components 或 composite: 。
JSF框架中的每个视图都有一个唯一的String类型的标识,称为 View ID 。(或视图ID)。
JSF的视图组件都是 _html文件,可以通过 表达式语句 直接引用Managed Bean的属性和方法。
(6)第七章 JDBC

利用JDBC访问数据库过程中,主要涉及三种资源: 数据库连接对象Connection , SQL语句对象 , 访问结果集对象 。
给定具体的JDBC URL,获取数据库连接的方法是调用DriverManager对象的 getConnection 方法来获取一个代表数据库连接的 java.sql.connection 对象。
ResultSet具有三个获取流的方法: getBinaryStream 、 getAsciiStream 、 getUnicodeStream .
JDBC支持三种类型的Statement对象: Statement , PreparedStatement , CallableStatement 。
JDBC URL的格式是: jdbc:子协议:数据库定位器 。
(7)第八章 JPA

JPA操作的基本单元称为 Entity(实体) , 它其实是一个普通的 Java 对象,通常对应数据库中的一个表。
在声明复合主键时,需要的两个注解是: @Embeddable 、 @EmbeadedId 。
JPA提供了注解 @GeneratedValue 来自动生成主键。
注解@GeneratedValue支持四种主键生成策略: Table 、 Sequence 、 Identity 、 Auto 。
在JPA中,注解@Transient表示的含义是: 其标注的属性不需要持久化 。
在JPA中,如果使用了java.util.Date类型,则必须额外标注 @Temporal 注解说明转化成java.sql包中的哪种类型。
在JPA中,持久化上下文有两种类型,它们是 事物范围持久化上下文 , 扩展范围持久化上下文 。
在JPA中,新增一个实体,调用EntityManage的方法是 persist() , 查询时调用的方法是find(),该方法的两个参数是 Entity类型 , Entity的ID 。
命名参数的格式是“ :+ 参数名”, 位置参数的格式是“ ?+位置编号 ”。
在JPQL中,为了支持使用数据库本地支持的SQL语句,提供了一种称为本地查询的方式,该查询方式也分为 动态查询 和 名称查询 两种类型。
ORM全称是 Object Relation Mapping 。
Entity中的char[], Character或String类型的属性通常映射为 CLOB(Character Large Objects) 类型的字段,而Entity中的byte[], Byte[]或实现了serializable接口的对象通常映射为 BLOB(Binary Large Objects) 类型的字段。
JPA支持两种类型的加载方式: 主动加载 和 被动加载 。
(8)第九章 EJB

EJB组件分为两种类型: 会话Bean , 消息驱动Bean 。
在EJB3.1规范中, EJB组件的实现可以仅仅是一个POJO,其全称是 Plain Old Java Object ,简单的原始Java对象 。它不继承任何类型,也不需要任何实现接口。
会话Bean分为三种类型: 有状态的会话 , 无状态的会话 , 单例会话 。
单例Bean可以采用两种并发管理方式,一种是 由容器托管 ,另一种是 由Bean自身实现 。
EJB组件通过以下四种机制与容器交互: 回调方法 , , , 上下文和依赖注入 。
二、简答题

(1)第一章 概述

三层体系结构的优点有哪些?
答:①安全性高。②易维护。③快速响应。④系统扩展灵活。

两层体系结构的缺点有哪些?
答:①安全性低。②部署困难。③耗费系统资源。

简述Java EE的“组件-容器”编程思想。
答:①Java EE应用的基本软件单元是Java EE组件。所有的Java EE组件都运行在特定的运行环境之中。组件的运行环境被称为容器。

②容器为组件提供必需的底层基础功能,容器提供的底层基础功能被称为服务。组件通过调用容器提供的标准服务来与外界交互。

Java EE体系结构的优点?
答:①独立于硬件配置和操作系统。

②坚持面向对象的设计原则。

③灵活性、可移植性和互操作性。

④轻松的企业信息集成。

请解释“惯例优于配置,仅异常才配置”的含义。
答:对于Java EE组件的一些属性和行为,容器按照一些约定俗成的惯例进行配置,此时开发人员连注解都可以省略。只有当组件的属性和行为不同于惯例时,才需要进行配置。

(2)第三章 Servlet

Servlet的基本工作流程?
答: ①客户端将请求发送到服务器。

②服务器上的web容器实例化(装入)Servlet,并为Servlet进程创建线程。

③Web容器将请求信息发送到Servlet。

④Servlet创建一个响应,并将其返回到Web容器。

⑤Web容器将响应返回客户端。

⑥服务器关闭或Servlet空闲时间超过一定限度时,调用destroy()方法退出。

在创建Web应用程序时,通过Servlet上下文(ServletContext)可以实现哪些功能?
答:①访问Web应用程序资源;

②在Servlet上下文属性中保存web应用程序信息;

③获取应用初始化参数信息;

④提供日志支持。

HttpServletResponse的sendRedirect方法与RequestDispatcher的forward方法有什么区别?
①RequestDispatcher.forward()是容器中控制权的转向,在客户端浏览器的地址栏中不会显示出转向后的地址;而HttpServletResponse.sendRedirect()方法则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求连接。

②RequestDispatcher.forward()仍旧是在同一次请求处理过程中。HttpServletResponse.sendRedirect()方法则是结束第一次请求,由浏览器发起一次新的请求。因此,前者更高效。

③RequestDispatcher.forward()只能转向到web应用内部的资源;而HttpServletResponse.sendRedirect()可以转到其他服务器上的某个资源。

(3)第四章 JSP

列举JSP的5个内置对象,并做简要说明。
答:①request:代表来自客户端的请求,封装了用户提交的信息;

②response:代表服务器对客户端的响应;

③out:代表向客户端发送数据的对象;

④session:支持web应用程序开发过程中的会话管理;

⑤application:代表运行在服务器上的应用程序;

⑥config:能获取当前JSP页面(当前文件)的初始化参数和一些方法;

⑦pageContext:代表当前页面运行的一些属性;

⑧page:代表了正在运行的由JSP文件产生的类对象;

⑨exception:处理JSP文件在执行时所有发生的错误和异常。

jsp:forward与response.sendRedirect()实现重定位有何不同?
答:①response.sendRedirect()是向浏览器发送一个特殊的Header,由浏览器来做转向,在浏览器地址栏可以看到地址变化。

②jsp:forward则不同,它是直接在服务器端执行重定位,浏览器并不知道,浏览器地址并不变化。

列举JSP内置对象的作用范围。
答:①page;②request;③session;④application。

(4)第五章 JavaBean

什么样的Java类是一个JavaBean?
答:①对于数据类型”protype”的每个可读属性property,Bean必须有一个get方法:public protype getProperty(){} 。

②对于数据类型”protype”的每个可写属性property,Bean必须有一个set方法:public void setProperty(protype x){} 。

③定义一个不带任何参数的构造方法。

JSP如何与JavaBean结合?二者如何传递消息?
答:①JSP可以使用三个标记jsp:useBean、jsp:setProperty、jsp:getProperty与JavaBean进行结合,还可以使用表达式语言访问JavaBean的属性。

②JSP可以使用脚本、标记、表达式语句访问JavaBean的属性,还可以通过脚本、标记、request对象的参数设置JavaBean的属性。

(5)第六章 JSF

什么是JSF?它有哪些优点?
答:JSF(Java Server Faces)是一种用于构建Java EE Web应用表现层的框架标准,提供了一种以组件为中心的事件驱动的用户界面构建方法。

优点在于:

①JSF是Java EE规范推荐的表现层框架标准

②JSF吸收了流行框架的标准

③便于与其他Java EE技术集成

描述Managed Bean的生命周期。
答:①Application: @ApplicationScoped, 整个应用。

②Session: @SessionScoped, 整个对话。

③View:@ViewScoped,整个视图。

④Request:@RequestScoped, 整个请求。

⑤None: 临时。

写出 JSF常规流程的6个阶段。
答:①恢复视图;②应用请求值;③处理校验;④更新模型值;⑤调用应用;⑥显示响应。

简要说明JSF标记库?
答: ①core:前缀f:;②html: 前缀h:;③facelets: 前缀ui:; ④Composite Components: 前缀Composite:。

JSF与JSP支持表达式语言的区别是什么?
答:①使用的分隔符不同。②作用方向不同。③JSF与JSP的隐式对象不同。

列举JSF框架中Bean验证框架的5个内置注解。
答:①Min:所注解的元素必须为数字,其值要大于或等于给定的最小值

②Max:所注解的元素必须为数字,其值要小于于或等于给定的最大值

③Size:被注解的元素必须位于给定的最小值和最大值之间。

④NotNull:被注解的元素不能为null

⑤Null:被注解的元素必须为null

⑥Future:所注解的元素必须是未来的日期

⑦Last:所注解的元素必须是过去的日期

⑧Pattern:被注解的元素(String)必须匹配给定的Java正则表达式

(6)第七章 JDBC

简述JDBC工作原理。
答:①JDBC为多种关系数据库提供了统一访问方式。

②真正的数据库访问操作实现是由各自数据库厂商提供的。通常,把厂商提供的特定于数据库访问的API称为数据库JDBC驱动程序。

③JDBC通过提供一个抽象的数据库接口,使得程序开发人员在编程时可以不用绑定在特定数据库厂商的API上,大大增加了应用程序的可移植性。

什么是数据源?什么是连接池?二者之间的关系?
答:①数据源存储了所有建立数据库连接的信息。

②连接池是JDBC为第三方应用服务器提供的一个由数据库厂家实现的管理标准接口,缓存一定数量的数据库链接资源对象。

③所有连接池和数据源的实现信息都存储在 JNDI 中。连接池一定以数据源的形式提供服务。但是数据源并不依赖连接池。数据源保存的实例可以直接通过JDBC来访问数据库。
简述ResultSet的光标5个属性。
答:①TYPE_FORWARD_ONLY:包含只进光标的结果集。

②TYPE_SCROLL_INSENSITIVE:结果集包含的光标可前后滚动,其他用户对数据库的修改将不会影响此结果集。

③TYPE_SCROLL_SENSITIVE:与上面一个的区别在于,其他用户对数据库的修改将会影响此结果集。

④CONCUR_READ_ONLY:结果集中包含的数据是只读数据。

⑤CONCUR_UPDATABLE:结果集中的数据可更新到数据库中。

(7)第八章 JPA

描述命名查询与动态查询的区别?
答:①创建一个动态查询,使用方法EntityManager的createQuery(), 它有一个字符串参数,表示一个JPQL查询。而命名查询是静态查询,由嵌入到@NamedQuery 注解或等价XML描述中的元数据表示。

②与动态查询相比,命名查询执行效率更高。因为持久化提供器在应用程序启动时将JPQL字符串翻译为SQL,而不是在运行时进行转换。

简述Entity的4个状态。
答:(1)New:已经创建了Entity的实例,但尚未与持久化上下文进行关联。

(2)Managed:Entity与持久化上下文进行关联,且实现与数据库中的信息映射。

(3)Detached:Entity实现数据库中的信息映射,但不再与持久化上下文关联。

(4)Removed:Entity对应的数据库中的数据已被删除。

画出Entity的生命周期变化图。
Java EE 复习题集_第1张图片
简述JPA主键自动生成的四种策略?
答:①Table策略;②Sequence策略;③Identity策略;④Auto策略。

(8)第九章 EJB

简述EJB与容器交互的四种机制?
答:①回调方法;②EJBContext;③JNDI (Java命名和目录接口);④上下文和依赖注入。

画出有状态会话Bean的生命周期示意图。
Java EE 复习题集_第2张图片

画出无状态会话Bean的生命周期示意图。
Java EE 复习题集_第3张图片
原文地址链接:https://blog.csdn.net/gnosed/article/details/86004895

你可能感兴趣的:(Java复习题,java)