您的当前位置:首页正文

JavaEE简答题

2020-03-01 来源:好走旅游网
JavaEE简答题 修改版(30分,6题*5分)

(一) 第一章 概述

1. 三层体系结构的优点有哪些?P2

①安全性高; ②易维护; ③快速响应; ④系统扩展灵活。

2. 两层体系结构的缺点有哪些?p2-3

①安全性低; ②部署困难; ③耗费系统资源。

3. 简述Java EE的“组件-容器”编程思想。(P5,有两点,与填空题第1题互斥)

①JavaEE应用的基本单元是JavaEE组件,所有的javaEE组件都运行在特定的环境中。

②组件的运行环境被称为容器。

4. Java EE体系结构的优点?p11,4点

①独立于硬件配置和操作系统; ②坚持面向对象的设计原则; ③灵活性、可移植性和互操作性; ④轻松的企业信息系统集成。

(二) 第三章 Servlet

5. Servlet的基本工作流程?p21:6点

①客户端将请求发送到服务器;

②服务器上的Web容器实例化Servlet,并为Servlet创建线程; ③Web容器将请求信息发送到Servlet;

④Servlet创建一个响应,并将其返回到Web容器; ⑤Web容器将响应返回客户端;

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

6. 在创建Web应用程序时,通过Servlet上下文可以实现哪些功能?p61,4点

①访问Web应用程序资源;

②在Servlet上下文属性中保存Web应用程序信息; ③获取应用初始化参数信息; ④提供日志支持。

7. HttpServletResponse的sendRedirect方法与RequestDispatcher的forward方法有什么区

别?p68:3点

①从操作本质上,RequestDispatcher.forward()是容器控制权的转向,在客户端浏览器的地址栏中不会显示出转向后的地址,而sendRedirect()则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求连接。

②从性能上,前者仍是在同一次请求处理过程中,后者是结束第一次请求,由浏览器发起一次新的请求。因此前者更高效。

③从跳转的范围上,HttpServletResponse()能够跳转到其他服务器上的资源,而RequestDispatcher.forward()只能转向Web应用内部的资源。

8. Filter的主要用途是什么?p69: 3点

①访问特定资源时的身份验证; ②访问资源的记录跟踪; ③访问资源的转换。

(三) 第四章 JSP

9. 列举JSP的5个内置对象,并做简要说明。

答:request、response、out、session、application、config、pageContext、page、exception (任选5个,并用一句话说明)

①request对象:代表来自客户端的请求,它封装了用户提交的信息; ②response对象:代表服务器对客户端的响应; ③out对象:代表向客户端发送数据的对象;

④application对象:代表运行在服务器上的Web应用程序,相当于Servlet上下文; ⑤exception对象:用来处理JSP文件在执行时所有发生的错误和异常。 10. 与response.sendRedirect()实现重定位有何不同?p114

response.sendRedirect()其实是向浏览器发送一个特殊的Header,然后由浏览器来做转向,转到指定的页面,在浏览器上的地址栏上可以看到地址的变化;

则不同,它是直接在服务器端执行重定位的,浏览器并不知道。

11. 简述JSP内置对象的作用范围。P122

①page。Page范围内的对象仅在JSP页面范围内有效。

②request。Request范围的JSP内置对象可以在Request范围内的若干个页面内有效。 ③session。Session范围内的JSP内置对象可以跨越若干个Requset范围有效。 ④application。Application范围内的JSP内置对象可以跨越几个Session范围有效。

(四) 第五章 Java Bean

12. 什么样的Java类是一个JavaBean?p129:3点

①对于数据类型“protype”的每个可读属性,Bean必须有下面签名的一个方法: public proptype getProperty(){};

②对于数据类型“protype”的每个可写属性,Bean必须有下面签名的一个方法: public setProperty(protype x){};

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

13. JSP如何与JavaBean结合?二者如何传递消息?(与填空题28题同一知识点)

答:JSP可以使用三个标记与JavaBean进行结合,还可以使用表达式语言访问JavaBean的属性。

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

14. 与response.sendRedirect()实现重定位有何不同?p114页

response.sendRedirect()其实是向浏览器发送一个特殊的Header,然后由浏览器来做转向,转到指定的页面,在浏览器上的地址栏上可以看到地址的变化;

则不同,它是直接在服务器端执行重定位的,浏览器并不知道。

(五) 第六章 JSF

15. 什么是JSF?它有哪些优点?

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

优点在于:(3分)

①JSF是Java EE规范推荐的表现层框架标准 ②)JSF吸收了流行框架的标准 ③便于与其他Java EE技术集成

16. 描述Managed Bean的生命周期。P153(5点,每个1分) 答:①Application: @ApplicationScoped, 整个应用;

②Session:@SessionScoped,整个对话; ③View:@ViewScoped,整个视图;

④Request:@RequestScoped,整个请求;

⑤None:无注解,临时(与宿主Managed Bean生命周期一致)。 17. 描述JSF的常规流程的6个阶段,并简要说明。

①恢复视图:对于每个请求,都会对应一个JSF视图。JSF框架的FaceServlet负责定位这一视图。

②应用请求值:获取每个组件的当前状态。

③处理校验:校验每个组件的当前状态是否合法。

④更新模型值:将UI组件和状态与业务逻辑组件Managed Bean的状态进行同步。 ⑤调用应用:进行消息事件的处理。

⑥显示响应:a.绘制结果视图的组件树并输出到客户端;

b.将当前组件树的状态进行保存以便响应之后的请求。 18. 简要说明JSF标记库?p161 表6-2(每个标记库:标记库名称、前缀和简要说明)

标记库名称 Core Html Facelets Composite Components

19. JSF与JSP支持表达式语言的区别是什么?p165, 3点

①使用的分隔符不同; ②作用方向不同; ③隐式对象不同。

20. 列举JSF对请求处理的6个阶段。P172

①恢复视图:对于每个请求,都会对应一个JSF视图。JSF框架的FaceServlet负责定位这一视图。

②应用请求值:获取每个组件的当前状态。

③处理校验:校验每个组件的当前状态是否合法。

④更新模型值:将UI组件和状态与业务逻辑组件Managed Bean的状态进行同步。 ⑤调用应用:进行消息事件的处理。

⑥显示响应:a.绘制结果视图的组件书并输出到客户端;

B.将当前组件树的状态进行保存以便响应之后的请求。

前缀 f: h: ui: Composite: 说明 对组件进行属性设置和功能绑定 生成HTML控件标记 页面模板标记 生成复合组件 21. 列举JSF框架中Bean验证框架的5个内置注解。P204

①NotNull:所注解的元素不能为null; ②Null:所注解的元素必须为null;

③Future:所注解的元素必须是未来的日期; ④Last:所注解的元素必须是过去的日期;

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

22. JSF框架支持哪四种事件类型?P204, 4个要点即可

①Value Change事件; ②Action事件; ③Phase事件; ④System事件。

23. Ajax与传统的web工作模型有何区别?p220,两点

①传统的web工作模型实际上是一种请求-响应模型,是一种同步通信方式,即用户提交请求并等待服务器返回响应后的更新页面。

②Ajax是一种异步通信模式,Ajax采用客户端脚本与web服务器通信,客户端不需要等待客户端的响应,不必采用导致中断交互的完整页面刷新,就可以动态地更新web页面。

(六) 第七章 JDBC

24. 画出JDBC访问数据库层次结构?p226 图7-6

25. 简述JDBC工作原理。P226页,3句话

在基于JDBC的数据库访问模式下,数据库访问清晰地分为3层:

①最上层为应用层: JavaEE程序开发人员在程序开发过程中通过调用JDBC进行数据库访问。

②中间层为JDBC接口层,它为JavaEE程序访问各种不用的数据库提供一个统一的访问接口。

③最底层为JDBC驱动层,它由特定数据库厂商提供的JDBC驱动程序来实现与数据库的真正交互。

26. 什么是数据源?什么是连接池?二者之间的关系?

答:数据源存储了所有建立数据库连接的信息。(1分)

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

所有连接池和数据源的实现信息都存储在JNDI中。连接池一定以数据源的形式提供服务。但是数据源并不依赖连接池。数据源保存的实例可以直接通过JDBC来访问数据库。

27. 列举ResultSet的光标5个属性。P239

①TYPE_FORWORD_ONLY: 包含只进光标的结果集,只能调用next()方法向前遍历,不能回头查询。

②TYPE_SCROLL_INSENSITIVE: 结果集包含的光标可前后滚动。可以调用first()、next()、absolute()等方法对数据库进行操作。

③TYPE_SCROLL_SENSITIVE: 结果集包含的光标可前后滚动。可以调first()、next()、absolute()等方法对数据进行操作。

④CONCUR_READ_ONLY: 结果集中包含的数据为只读数据。 ⑤CONCUR_UPDATABLE: 结果集中的数据可更新到数据库中。

(七) 第8章 JPA

28. 描述命名查询与动态查询的区别?

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

②与动态查询相比,命名查询执行效率更高。因为持久化提供器在应用程序启动时将JPQL字符串翻译为SQL,而不是在运行时进行转换。 29. 论述Entity的状态和生命周期变化?p282-283

①New:已经创建了Entity的实例,但尚未与持久化上下文进行关联,更未实现与数据库中的信息的映射。

②Managed:Entity 已经与持久化上下文进行关联,且实现与数据库中的信息映射。 ③Detached:Entity 实现数据库中的信息映射,但不再与持久化上下文进行关联。 ④Remove:Entity 对应的数据库中的数据已被删除。它们之间的变化关系如图所示:

30. 简述JPA中提供的三种不同的策略实现继承映射?p273(与填空题)

①Single-table 策略:继承映射中的默认策略,将父类及子类中新添加的属性全部映射到一张数据库表中,另外又在表中增加一个字段用来保存对象的类型信息。

②Joined-subclass 策略:继承关系中的每一个Entity类,数据库中都有一个单独的表与他对应。子Entity对应的表中不含有从根Entity继承而来的属性,它们之间通过共享主键的方式进行关联

③Table-per-concrete-class 策略:将继承关系中的每一个Entity映射到数据库中的一个单独的表中,子Entity对应的表中含有从根Entity继承而来的属性。

31. 简述JPA主键自动生成的四种策略?P261(与填空题55题是同一知识点)

①Table策略。JPA实现使用关系型数据库中的一个表来生成主键。可移植性好。 ②Sequence策略:一些数据库提供一种内置的称为“序列”的机制生成主键。

③Identity策略:用一个Identity列(自动增长列)来生成主键。④Auto 策略:是JPA默认主键生成策略,主键生成的策略由JPA实现决定。

(八) 第9章 EJB

32. 简述EJB与容器交互的四种机制?p298(与填空题69同一知识点)

①回调方法。回调方法是EJB组件实现的,通过注解或在部署文件中声明的特定方法。 ②EJBContext。每个EJB都会得到一个EJBContext对象,它是对容器的直接引用。 ③Java命名和目录接口(Java Naming and Directory Interface,JNDI)。JNDI是Java平台的标准扩展,用于访问命名系统。

④上下文和依赖注入。EJB通过注解声明需要的组件和服务器资源,上下文和依赖注入服务将自动创建或获取对应的组件和资源,并将其添加到EJB组件中。

33. 画出有状态会话Bean的生命周期示意图。(p314)

34. 画出无状态会话Bean的生命周期示意图。(p303)

35. 简述EJB的部署描述信息。(p301)

①部署描述信息有一个预先定义的格式,所有符合Java EE规范的EJB组件都可以使用此格式来描述自身信息,而所有符合Java EE规范的服务器必须知道如何读取此格式。这种格式在XML文档类型定义(DTD)中指定。

②部署描述信息描述了EJB的类型及接口方法和EJB实现类的名称。它还指定了EJB中每个方法的事务性属性、哪些安全性角色可以访问每个方法。

③部署描述信息在jar必须以特定名称META-INF/ejb-jar.xml保存。

因篇幅问题不能全部显示,请点此查看更多更全内容