J2EE简答题
- 格式:doc
- 大小:35.00 KB
- 文档页数:4
J2EE考试题及答案
一、概述
本文档收集了一些J2EE考试题与相应的答案。
这些问题涵盖了
J2EE的不同方面,包括Servlet、JSP、EJB、Web服务等。
下面依次列出各个部分的考试题目及答案。
二、Servlet
1. Servlet的生命周期是什么?
答案:
Servlet的生命周期包括以下4个阶段:
1.实例化:当容器接收到对Servlet的请求时,会创建Servlet的实例。
2.初始化:在创建完实例后,容器会调用init方法对Servlet进行初始化。
这个方法只会在Servlet的生命周期中被调用一次。
3.服务处理:一旦初始化完成,Servlet就可以处理来自客户端的请求。
容器会多次调用Servlet的service方法来处理不同的请求。
4.销毁:当容器关闭或发生其他终止条件时,容器会调用destroy 方法销毁Servlet实例。
在销毁之前,容器会先调用Servlet的destroy方法进行一些清理工作。
2. Servlet的线程模型是什么?答案:
Servlet的线程模型是。
j2ee考试题及答案ejb1. 什么是EJB(Enterprise JavaBeans)?EJB是一种服务器端组件架构,用于开发和部署多层结构的、分布式的、面向对象的Java应用程序。
EJB组件提供了一种结构化的方法来创建可重用的、可伸缩的和事务性的业务逻辑。
2. EJB有哪些类型?EJB主要有三种类型:会话Bean(Session Beans)、实体Bean(Entity Beans)和消息驱动Bean(Message-Driven Beans)。
3. 会话Bean(Session Beans)的作用是什么?会话Bean代表与客户端的短暂交互,它们通常用于实现应用程序的业务逻辑,但不保存数据。
会话Bean可以是无状态的(Stateless)或有状态的(Stateful)。
4. 实体Bean(Entity Beans)和会话Bean(Session Beans)有什么区别?实体Bean代表业务实体,通常与数据库中的持久数据相关联,而会话Bean代表与客户端的短暂交互,不直接与持久数据关联。
5. 消息驱动Bean(Message-Driven Beans)的主要功能是什么?消息驱动Bean是一种特殊的EJB,用于处理来自消息队列的消息。
它们是无状态的,并且可以异步处理消息,这使得它们非常适合处理大量消息。
6. EJB容器提供哪些服务?EJB容器提供多种服务,包括事务管理、安全性、持久性、生命周期管理、并发控制和资源池。
7. EJB的事务属性有哪些?EJB的事务属性包括:Required、RequiresNew、Mandatory、Never、NotSupported和Supports。
8. 如何在EJB中处理异常?在EJB中,可以通过声明异常(declarative exception handling)和编程异常(programmatic exception handling)两种方式来处理异常。
1、简述J2EE的四层模型。
(1)运行在客户端机器上的客户层组件(2)运行在J2EE服务器上的Web层组件(3)运行在J2EE服务器上的业务逻辑层组件(4)运行在EIS服务器上的企业信息系统(Enterprise information system)层软件2、什么是对象持久化?即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。
3、简述一下OR MAPPING,为什么我们使用它?ORM(Object Relational Mapping)是一种为了解决面向对象与关系型数据库存在的互不匹配的现象的技术。
简单说:ORM是通过使用描述对象和数据库之间映射的元数据,将Java程序中的对象自动持久化到关系数据中。
本质上就是将数据从一种形式转换到另外一种形式。
原因:用它来架起对象和关系型数据库的桥梁,可解决对象层次的映射、对象关系的映射以及对象的持久化问题。
4、简述一下如何使用Hibernate实现对象持久化的过程(可画图或用伪码描述)STEP 1:创建Configuration对象。
在这一步中主要为了进行配置文件的装载操作,读取所有的配置文件并进行解析STEP 2: 创建SessionFactory对象。
通过创建好的Configuration对象可以创建一个sessionFactory对象的实例,同时是生成Session对象实例的工厂,他在整个应用中应该是唯一的。
STEP 3:创建Session对象。
Session对象类似于数据库的连接对象,可以理解为与数据库建立的一个连接,但是他的功能要比JDBC中的Connection对象丰富很多。
STEP 4:开始一个事务。
在Java中定义一个事务操作的开始,这是使用Hibernate进行持久化操作必不可少的步骤STEP 5:进行持久化操作。
在这个步骤中可以读取或者保存Java对象。
STEP 6:结束事务。
在操作完成之后还要进行显式的结束事务的操作。
1.Hibernate要求持久化类必须提供一个( ),在程序运行时,Hibernate运用Java反射机制,调用ng.reflect.Constructor.Newinstance()方法来构造持久化类的实例。
A.带参数的默认构造方法B.不带参数的默认构造方法C.带参数的自定义构造方法D.不带参数的自定义构造方法2.为了支持J2EE应用程序,在会将以下除了( )的其他几个部署到J2EE容器中。
A.EJB容器B.Web容器C.客户端应用程序容器D.数据库管理3.下述说法中,错误的是( )A.方法的重载是指多个方法可以共享同一个名字,但是参数必须不同B.用abstract修饰的类称为抽象类,它不能实例化C.接口不包含成员变量和方法实现D.构造方法可以有返回值4.下列程序段的输出结果是public class Expressions{(题有点问题)void printExpr(){int x=3,y=4,z=5;System.out.println(x+y+z);}}A.xyzB.x+y+zC.12D.95.下列语句序列执行后,K的值是( )int x=2,y = 5,k = 0;switch(x%y){case 0: k = x+y;break;case 1: k = x-y;break;case 2: k = x*y;break;default: k=x/y;break;}System.out.println(k);A.2B.5C.10D.06.下面哪个表达式可以用来得到X和Y的最大值()A.X>Y?Y:XB.X<Y?Y:XC. X>Y?(X+Y):(X-Y)D.X==Y?Y:X7.下面不属于Java语言特点的一项是( )A.安全性B.分布式C.移植性D.编译执行8.应用程序的main方法中有以下语句,则输出的结果是( )double x= 1234.1234567;DecimalFormat form1 = new DecimalFormat("0.00");System.out.println("PI="+form1.format(x));A.1234.12B. 4.12C. 1234.1234567D.1234.009.下面的描述错误的是( )A.Statement的executeQuery()方法会返回一个结果集B.Statement的executeUpdate()方法会返回是否更新成功的boolean值C .使用ResultSet中的getString()可以获得一个对应于数据库中char类型的值D .ResultSet中的next()方法会使结果集中的下一行成为当前行10.下面关于构造函数的说法不正确的是( )A.构造函数也属于类的方法,用于创建对象的时候给成员变量赋值。
《J2EE架构与开发》期末考试简答题答案⼀、请简述Web的⼯作原理。
⼆、HTML的标签有两个重要的属性action和method,这两个属性的作⽤是什么?type属性和name属性的作⽤是什么?答:action:接收表单数据的服务器端程序或动态⽹页的URL地址。
method:表单数据传输到服务器的⽅法。
其属性值如下:post:在HTTP请求中嵌⼊表单数据。
get:将表单数据附加到请求该页的URL中。
type:所属类型name:单⾏⽂本框的名称,通过它可以在脚本中引⽤该⽂本框控件。
三、JSP有哪些内置对象?作⽤分别是什么?答:page对象:page对象代表JSP页⾯本⾝,是this引⽤的⼀个代名词。
对JSP页⾯创建者通常不可访问,所以⼀般很少⽤到该对象。
config对象:config对象是ServletConfig类的⼀个对象,存放着⼀些Servlet初始化信息,且只有在JSP页⾯范围内才有效。
其常⽤⽅法如下:getInitParameter(name):取得指定名字的Servlet初始化参数值。
getInitParameterNames():取得Servlet初始化参数列表,返回⼀个枚举实例。
getServletContext():取得Servlet上下⽂(ServletContext)。
getServletName():取得⽣成的Servlet的名字。
out对象:JSP页⾯的主要⽬的是动态产⽣客户端需要的HTML结果,前⾯已经⽤过out.print()和out.println()来输出结果。
此外out对象还提供了⼀些其他⽅法来控制管理输出缓冲区和输出流。
例如,要获得当前缓存区⼤⼩可以⽤下⾯的语句:out.getBufferSize();要获得剩余缓存区⼤⼩应为:out.getRemaining();response对象:response对象实现HttpServletResponse接⼝,可以对客户的请求做出动态的响应,向客户端发送数据request对象:session对象:application对象:pageContext对象:exception对象:exception对象⽤来处理JSP⽂件在执⾏时所发⽣的错误和异常。
J2EE简答题复习(含答案)1、forward和sendRedirect的区别forward是request的方法,sendRedirect是response的方法,使用forward延续之前的请求,地址栏地址不会转变,使用sendRedirect会开启新的请求,地址栏地址转换2、视图层调用了服务层好不好,该怎么办?不好,因为视图层和服务层之间还有控制层,不应该越级调用3、Service层的简介在内存中以对象的形式处理业务逻辑4、有人认为MVC模式对M的支持很弱,为什么?因为mvc模式的m中,只有对象的get、set和validate方法,只支持领域对象,广义上的m应该包括实体对象和服务对象5、普通的Action只有一个execute()方法,有何缺点,如何改进?只有一个execute()方法导致类的数目太多改进:把一个execute()方法变成多个方法,在url中加入某变量,在配置文件中设置参数,告知核心控制器调用哪个方法6、AOP能代替OOP吗?不能。
AOP侧重实现功能,而OOP侧重对象,AOP实现多种功能,并把这些功能植入各个对象,不能代替,应该两种结合起来使用7、何谓IOC控制反转,也叫DI,依赖注入,由容器为类注入某些对象,在配置文件中配置,类的实例要向容器申请。
8、Struts中自定义控制器的方法execute()的参数及解释public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) {return mapping.findForward("error");}ActionMapping 作用就是帮助控制其将请求映射到操作ActionForm 作用就是接受和存储表单form中接受的数据(相当于bean)Request 请求Response 回复9、如何引入struts下载struts的jar包,在web.xml中以servlet的方式配置该类,来映射到某些类10、servletContext能否做购物车能,但是这种做法不提倡,servletContext相当于jsp中的application,会涵括整个项目的所有人的购物车信息,会使得结构复杂,对服务器而言,负担比较大1。
J2ee基础面试题一.名词解释1. web容器2. EJB容器3. JNDI4. JMS5. JTA6. JAF7. RMI/IIOP8. J2EE9. Jdo10. WEB SERVICE11. JAXP12. JAXM13. WSDL14. SOAP15. UDDI二.简答题1. 应用服务器有那些?2. J2EE是技术还是平台还是框架?3. 如何给weblogic指定大小的内存?4. 如何设定的weblogic的热启动模式(开发模式)与产品发布模式?5. 如何启动时不需输入用户名与密码?6. 在weblogic管理制台中对一个应用域(或者说是一个网站,Domain)进行jms及ejb或连接池等相关信息进行配置后,实际保存在什么文件中?7. 在weblogic中发布ejb需涉及到哪些配置文件8. 如何在weblogic中进行ssl配置与客户端的认证配置或说说j2ee(标准)进行ssl的配置9. 如何查看在weblogic中已经发布的EJB?10. CORBA是什么?用途是什么?11. 说说在weblogic中开发消息Bean时的persistent与non-persisten的差别12. 开发中都用到了那些设计模式?用在什么场合?13. 应用服务器与WEB SERVER的区别?三.问答题1. XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?2. 说说weblogic中一个Domain的缺省目录结构?比如要将一个简单的helloWorld.jsp放入何目录下,然的在浏览器上就可打入 http://主机:端口号//helloword.jsp就可以看到运行结果了? 又比如这其中用到了一个自己写的javaBean该如何办?3. 说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法4. j2ee常用的设计模式?说明工厂模式。
5. BS与CS的联系与区别。
1、简述J2EE的四层模型。
运行在客户端机器上的客户层组件运行在J2EE服务器上的Web层组件运行在J2EE服务器上的业务逻辑层组件运行在EIS服务器上的企业信息系统(Enterprise information system)层软件2、什么是对象持久化?即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。
3、简述一下OR MAPPING,为什么我们使用它?ORM(Object Relational Mapping)---是一种为了解决面向对象与关系型数据库存在的互不匹配的现象的技术。
简单说:ORM是通过使用描述对象和数据库之间映射的元数据,将Java 程序中的对象自动持久化到关系数据中。
本质上就是将数据从一种形式转换到另外一种形式。
原因:用它来架起对象和关系型数据库的桥梁,可解决对象层次的映射、对象关系的映射以及对象的持久化问题。
4、简述一下如何使用Hibernate实现对象持久化的过程(可画图或用伪码描述)STEP 1:创建Configuration对象。
在这一步中主要为了进行配置文件的装载操作,读取所有的配置文件并进行解析STEP 2: 创建SessionFactory对象。
通过创建好的Configuration对象可以创建一个sessionFactory对象的实例,同时是生成Session对象实例的工厂,他在整个应用中应该是唯一的。
STEP 3:创建Session对象。
Session对象类似于数据库的连接对象,可以理解为与数据库建立的一个连接,但是他的功能要比JDBC中的Connection对象丰富很多。
STEP 4:开始一个事务。
在Java中定义一个事务操作的开始,这是使用Hibernate进行持久化操作必不可少的步骤STEP 5:进行持久化操作。
在这个步骤中可以读取或者保存Java对象。
STEP 6:结束事务。
在操作完成之后还要进行显式的结束事务的操作。
STEP 7:关闭Session。
1.HTTP请求中get和post的区别是什么?
2.什么是servlet? 简述servlet的生命周期。
3.web编程中,forward和redirect两种提交方式有什么区别?
4.request.getAttribute()和request.getParameter()有什么区别?
5.web编程中的内置对象有哪些?他们有什么不同?
6.简述jsp的常用的指令有哪些?动作有哪些?
7.jsp中动态include和动态的include有什么区别?
8.jsp和servlet有哪些相同点和不同点,他们之间的联系是什么?
9.什么是MVC,采用MVC编程有什么好处?
10.用JDBC如何调用存储过程?
11.简述JDBC中的preparedStatement相比Statement的优化之处。
12.简述数据库中的事物的概念,在JDBC中用到的API有哪些?
13.简述什么是数据源和连接池,他们的实现机制是什么?
14.JNDI的中文含义是什么?在J2EE中的主要作用是什么?
15.简述JDBC和ORM的区别?作用分别是什么?
16.谈谈你对struts的理解?
17.谈谈你对hibernate的理解?
18.B/S结构和C/S区别是什么?
19.应用服务器和web server 的区别是什么?
20.常用的应用服务器有哪些?
21.如何理解J2EE的分层结构,这样设计的好处是什么?
22.简述EJB和JA V A BEAN的区别?
23.简述EJB的类型,在企业及应用中分别承担的任务是什么?
24.简述J2EE中的激活和钝化机制是什么?
25.简述客户端调用EJB对象的步骤?。
1.什么事Servlet?什么是Servlet容器?它的主要作用是什么?答:1.Servlet 是一种在服务器上执行的 Java 技术组件。
2.Web 容器是一种运行时环境,管理 Web 应用程序的组件,如 Servlet、JSP Pages、筛选器和 Web 事件侦听器。
3. a.通信支持b.生命周期管理c.多线程支持d.声明性安全e.JSP 支持2.Web应用程序的部署描述文件名是什么?它是什么类型的文件?应该存放在什么目录中?答:1.war2.jar文件3.webapps3.什么是404错误?答:请求资源不存在服务器找不到指定的资源,请求的网页不存在。
4.什么是JSP页面?它与HTML页面有什么关系?答:在HTML中插入JAVA程序段和JSP标记.JSP页面是实现HTML页面嵌入代码和使用模板数据的一种技术。
HTML是JSP的基础,JSP在HTML中添加JAVA程序使原本静态网页变成动态网页.5.Servlet和JSP各适用什么场合?答:前者适合做逻辑处理,后者适合做页面呈现.6.简述Servlet的生命周期,生命周期方法有那几个?答:1.加载Servlet类2.创建Servlet实例3.调用init方法4.调用service方法5.调用destory方法Init service destory7.GET请求和POST请求有什么不同?答:前者:表单数据包含在HTTP请求的URL中,包含数据量较小后者:表单数据包含在HTTP请求的请求体中,包含数据量较大8.有哪几个作用域对象?如何在这些对象上设置获得属性?在什么作用域中对象可以被Servlet容器的所有的Web应用程序访问?答:requestsessioncontext设置: 对象.setAttribute(“key”,value)获取:对象.get Attribute(“key”)context9.JSP有哪些内置对象?分别有什么作用?答:10.试述JSP的工作方式。
2、JSP的常用指令
3、说出Servlet的生命周期,并说出Servlet和CGI的区别。
4、什么情况下调用doGet()和doPost()?
5、forward 和redirect的区别
6、JSP中动态INCLUDE与静态INCLUDE的区别?
7、页面间对象传递的方法
8、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
9、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串(GET 请求)?
10、JSP有哪些动作?作用分别是什么?
11、在JSP中下面的两种跳转方式有什么区别?
(1)out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。
(2)request表示HttpServletRequest对象。
它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header, 和session数据的有用的方法。
(3)response表示HttpServletResponse对象,并提供了几个用于设置送回浏览器的响应的方法(如cookies,头信息等)
(4)session表示一个请求的javax.servlet.http.HttpSession对象。
Session可以存贮用户的状态信息
(5)applicaton 表示一个javax.servle.ServletContext对象。
这有助于查找有关servlet引擎和servlet环境的信息
(6)page表示从该页面产生的一个servlet实例
(7)pageContext表示一个javax.servlet.jsp.PageContext对象。
它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。
(8)config表示一个javax.servlet.ServletConfig对象。
该对象用于存取servlet实例的初始化参数。
(9) exception 表示异常的抛出,如使用exception, jsp页面必须设置errorPage="***.jsp" isErrorPage="true"。
2、JSP的常用指令
<%@page %>
<%@include %>
<%@taglib %>
3、说出Servlet的生命周期,并说出Servlet和CGI的区别。
(1)Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service 方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
(2)与CGI的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。
4、什么情况下调用doGet()和doPost()?
Jsp为超链接、或在URL 中直接访问servlet,调用doGet();
Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()。
5、forward 和redirect的区别
(1)forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,URL地址不改变,request 的信息不丢失。
(2)redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,URL 地址改变,request的信息会丢失。
6、JSP中动态INCLUDE与静态INCLUDE的区别?
(1)动态包含,用jsp:include动作实现<jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。
(2)静态包含,用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@ include file="included.htm" %>
7、页面间对象传递的方法
request,session,application,cookie等
8、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
(1)JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。
JSP 编译后是"类servlet"。
(2)Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。
而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp 的文件。
(3)JSP侧重于视图,Servlet主要用于控制逻辑。
9、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串(GET 请求)?
public String translate (String str) {
String val = "";
try {
val = new String(str.getBytes("ISO-8859-1"), "UTF-8");
val = tempStr.trim();
} catch (Exception ex) {
ex.printStackTrace();
}
return val;
}
10、JSP有哪些动作?作用分别是什么?
JSP共有以下6种基本动作
(1)jsp:include:在页面被请求的时候引入一个文件。
(2)jsp:useBean:寻找或者实例化一个JavaBean。
(3)jsp:setProperty:设置JavaBean的属性。
(4)jsp:getProperty:输出某个JavaBean的属性。
(5)jsp:forward:把请求转到一个新的页面。
(6)jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记
11、在JSP中下面的两种跳转方式有什么区别?
<jsp:include page="included.jsp" flush="true">
<jsp:forward page= "nextpage.jsp"/>
(1)前者页面不会转向include所指的页面,只是显示该页的结果,主页面还是原来的页面。
执行完后还会回来,相当于函数调用。
并且可以带参数。
(2)后者完全转向新页面,不会再回来。
相当于go to 语句。