J EE考试题目及答案.docx
- 文档编号:9088009
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:16
- 大小:25.83KB
J EE考试题目及答案.docx
《J EE考试题目及答案.docx》由会员分享,可在线阅读,更多相关《J EE考试题目及答案.docx(16页珍藏版)》请在冰点文库上搜索。
JEE考试题目及答案
J2EE简答题
1、简述J2EE的四层模型。
运行在客户端机器上的客户层组件;运行在J2EE服务器上的Web层组件;运行在J2EE服务器上的业务逻辑层组件;运行在EIS服务器上的企业信息系统层软件
2、什么是对象持久化?
即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。
持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。
3、简述一下ORMAPPING,为什么我们使用它?
ORM(ObjectRelationalMapping)是一种为了解决面向对象与关系型数据库存在的互不匹配的现象的技术。
简单说:
ORM是通过使用描述对象和数据库之间映射的元数据,将Java程序中的对象自动持久化到关系数据中。
本质上就是将数据从一种形式转换到另外一种形式。
原因:
用它来架起对象和关系型数据库的桥梁,可解决对象层次的映射、对象关系的映射以及对象的持久化问题。
4、简述一下如何使用Hibernate实现对象持久化的过程(可画图或用伪码描述)
STEP1:
创建Configuration对象。
在这一步中主要为了进行配置文件的装载操作,读取所有的配置文件并进行解析、
STEP2:
创建SessionFactory对象。
通过创建好的Configuration对象可以创建一个sessionFactory对象的实例,同时是生成Session对象实例的工厂,他在整个应用中应该是,唯一的。
STEP3:
创建Session对象。
Session对象类似于数据库的连接对象,可以理解为与数据库建立的一个连接,但是他的功能要比JDBC中的Connection对象丰富很多。
STEP4:
开始一个事务。
在Java中定义一个事务操作的开始,这是使用Hibernate进行持久化操作必不可少的步骤
STEP5:
进行持久化操作。
在这个步骤中可以读取或者保存Java对象。
STEP6:
结束事务。
在操作完成之后还要进行显式的结束事务的操作。
STEP7:
关闭Session。
类似于释放数据库的连接。
5、为什么要实现序列化?
1、序列化以某种存储形式使自定义对象持久化
2、序列化将对象转换为可传输方式从一个地方传递到另一个地方
3、序列化使程序更具维护性
6、比较一下sessionFactory中的opensession()和getcurrentsession()方法
1、getCurrentSession创建的session会和绑定到当前线程,而openSession不会。
2、getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭
7、比较一下session中的load()和get()方法,以及如何保证每次都是从数据库读取而不是在缓存中读?
load()和get()方法均可以根据指定的实体类和id从数据库读取记录,并返回与之对应的实体对象。
其区别在于:
如果未能发现符合条件的记录,get方法返回null,而load方法会抛出一个ObjectNotFoundException。
Load方法可返回实体的代理类实例,而get方法永远直接返回实体类。
load方法可以充分利用内部缓存和二级缓存中的现有数据,而get方法则仅仅在内部缓存中进行数据查找,如没有发现对应数据,将越过二级缓存,直接调用SQL完成数据读取。
8、Action接受用户参数输入,主要有哪几种方式?
我们常用的是哪一种?
属性接收参数;2.Domainmodal(域模型)接收参数;driven接收参数。
常用第一种跟第二种
9、在struts中实现一个action有哪几种方式?
最常用的是哪种?
1.定义一个普通的类,类中只要有一个publicStringexecute()方法且返回一个字符串即可。
2.定义一个类,实现Action接口,这个包的
3继承这个类。
最常用的是第三种
10、在中Result的type常用的有四种类型
1)dispatcher2)redirect3)chain4)redirectAction
哪些是服务器跳转?
哪些是客户端跳转?
dispatcher和chain是服务器端跳转,所以客户端只发起一次请求
redirect和redirectAction是客户端跳转,所以客户端发起两次请求。
11、j2ee是技术还是平台还是框架?
它主要包含哪些技术,列举并简单描述2到3个技术?
J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。
J2EE也是一个框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技术。
JDBC:
是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
RMI:
RMI协议调用远程对象上的方法。
它使用了序列化方式在客户端和服务器端传递数据。
RMI是一种被EJB使用的更底层的协议。
12、MVC的各个部分都有哪些技术来实现?
如何实现?
MVC是Model-View-Controller的简写。
"Model"代表的是应用的业务逻辑(通过JavaBean,EJB组件实现),"View"是应用的表示面(由JSP页面产生),"Controller"是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。
这些组件可以进行交互和重用。
13、什么是JNDI?
JNDI是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDISPI的实现,由管理者将JNDIAPI映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。
14、举例并简单描述2到3种动态网页开发技术。
1、PHP,是英文超文本预处理语言HypertextPreprocessor的缩写。
PHP是一种HTML内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用。
2、ASP,它是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。
ASP的网页文件的格式是.asp,现在常用于各种动态网站中。
15、简单描述浏览器输入,解释地址→用端口号和地址访问服务器→访问资源)。
1.浏览器会将请求打包成http请求数据包,发送给web服务器,
2.web服务器中的servlet引擎解析请求并封装为一个HttpServletRequest对象(包含了请求数据),同时创建个HttpServletResponse对象。
3.servlet调用servlet的service()方法,并将HttpServletReque,HttpServletResponse对象作为参数传递给servlet实例
4.servlet可以从HttpServletRequest对象中获得请求数据,并处理,当然,servlet也可能要访问数据库。
然后将处理之后的结果放到HttpServletResponse中。
5.servlet引擎从HttpServletResponse中取数据,并将数据打包成http数据包发送给浏览器。
16、开发servlet服务器程序三种方法。
开发servlet有三种方法:
a,实现servlet接口;b,继承GenericServet;c,继承HttpServlet
17、通过httpservlet去开发servlet,需要重写doGet和doPost方法。
这是常用的方式,请简述Get与Post方法的区别。
(1)get是从服务器上获取数据,post是向服务器传送数据。
在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTMLHEADER内提交。
(2)对于get方式,服务器端用获取变量的值,对于post方式,服
务器端用获取提交的数据。
(3)GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
(4)安全性问题。
使用Get的时候,参数会显示在地址栏上,而Post不会。
所以,还是
使用post为好。
18、简述http返回包中的状态码200,302,404,500的意义。
[200]请求已成功,请求所希望的响应头或数据体将随此响应返回。
[302]请求的资源现在临时从不同的URI响应请求。
[404]请求失败,请求所希望得到的资源未被在伺服器上发现。
[500]伺服器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理.
19、简述请求重定向()和请求转发(getRequestDispatcherforward)的区别。
1、forward()只能将请求转发给同一个Web应用中的组件,而sendRedirect()方法不仅可以重定向到当前应用程序中的其他资源,还可以重定向到其他站点的资源。
2、sendRedirect()方法重定向的访问过程结束后,浏览器地址栏中显示的URL会发生改变,由初始的URL地址变成重定向的目标URL;而调用forward()方法的请求转发过程结束后,浏览器地址栏保持初始的URL地址不变。
3、forward()方法的调用者与被调用者之间共享相同的request对象和response对象;而sendRedirect()方法调用者和被调用者使用各自的request对象和response对象,它们属于两个独立的请求和响应过程。
20、Hibernate拒绝连接、服务器崩溃的原因?
最少写三个?
1.db没有打开
2.网络连接可能出了问题
3.连接配置错了
4.驱动的driver,url是否都写对了
5.LIB下加入相应驱动,数据连接代码是否有误
6.数据库配置可能有问题
7.当前联接太多了,服务器都有访问人数限制的
8.服务器的相应端口没有开,即它不提供相应的服务
9hibernate有哪些缓存,分别怎么使用?
10你对hibernate的了解到了一个什么样的程度?
11写出一个sql语句体现hibernate中一对多的关系
21、Update()和saveOrUpdate()的区别?
update()方法操作的对象必须是持久化了的对象。
也就是说,如果此对象在数据库中不存在的话,就不能使用update()方法。
saveOrUpdate()方法操作的对象既可以使持久化了的,也可以使没有持久化的对象。
如果是持久化了的对象调用saveOrUpdate()则会
更新数据库中的对象;如果是未持久化的对象使用此方法,则save到数据库中。
22、Hibernate的三种状态之间如何转换?
当对象由瞬时状态(Transient)一save()时,就变成了持久化状态。
当我们在Session里存储对象的时候,实际是在Session的Map里存了一份,也就是它的缓存里放了一份,然后,又到数据库里存了一份,在缓存里这一份叫持久对象(Persistent)。
Session一Close()了,它的缓存也都关闭了,整个Session也就失效了,这个时候,这个对象变成了游离状态(Detached),但数据库中还是存在的。
当游离状态(Detached)update()时,又变为了持久状态(Persistent)。
当持久状态(Persistent)delete()时,又变为了瞬时状态(Transient),此时,数据库中没有与之对应的记录。
23、工厂模式?
工厂模式主要是为创建对象提供了接口。
工厂模式按照《Java与模式》中的提法分为三类:
1.简单工厂模式(SimpleFactory)2.工厂方法模式(FactoryMethod)3.抽象工厂模式(AbstractFactory)
这三种模式从上到下逐步抽象,并且更具一般性。
还有一种分类法,就是将简单工厂模式看为工厂方法模式的一种特例,两个归为一类。
下面是使用工厂模式的两种情况:
1.在编码时不能预见需要创建哪种类的实例。
2.系统不应依赖于产品类实例如何被创建、组合和表达的细节
24、抽象类和接口的区别?
接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。
还有,接口可以实现,而一个类只能继承一个,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如接口)和数据共享(里面的变量全是常量)的作用.
25、Forward和redirect的区别?
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。
redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。
26、持久化对象的三种状态,代表含义?
瞬时态:
简单的说就是你在程序里面new一个对象,还没有和session关联
持久态:
对象和session有了关联,对象处于框架管理中
游离态:
在持久态的情况下,对象和session失去了关联,比如()或()后,即游离态,但数据已经存储到了数据库
27、页面之间的值传递?
1:
可以分成多个参数对的方式用querystring传递。
2:
可以用特定的字符分隔后组成一个字符串,再用一个参数对的querystring方式传递。
3:
如果是第三信息的话,可以用在服务器端的session方式传递,一般不用这种方式。
因为占服务器资源。
4:
也可以用cookie方式传递。
5:
当然还可以用其它的不常的方式传递。
28、Struts框架的数据验证可分为几种类型?
表单验证(由ActionFormBean处理):
如果用户没有在表单中输入姓名,就提交表单,将生成表单验证错误
业务逻辑验证(由Action处理):
如果用户在表单中输入的姓名为“Monster”,按照本应用的业务规则,不允许向“Monster”打招呼,因此将生成业务逻辑错误。
29、写一个Singleton模式的例子?
publicclassSingleton
{
privatestaticfinalSingletonsingleton=newSingleton();
privateSingleton()
{
}
publicstaticSingletongetInstance()
{
returnsingleton;
}
}
30、谈谈你MVC的理解?
MVC是一种设计模式,它强制的将应用程序的输入、处理、和输出分开。
使用了MVC的应用程序被分为3个核心部件:
试图(View)、模型(Model)、控制器(Controller)。
它们各司其职,既分工明确又相互合作。
首先视图接受用户输入请求,然后将请求传递给控制器,控制器再调用某个模型来处理用户的请求,在控制器的控制下,再将处理后的结果交给某个视图进行格式化输出给用户.这是经典的MVC设计执行的基本流程。
MVC不仅实现了功能模块和显示模块的分离,同时它还提高了系统的可维护性、可扩展性和组件的可复用性,是一个优秀的创建软件的途径。
J2EE把MVC引入了web领域,并在此基础上架构出了一套称为Model2的体系。
Model2体系及jsp作为视图显示输出和接受用户输入数据,Servlet作为控制器处理用户请求并根据用户请求选择相应的jsp返回给用户,javaBean作为模型组件用作业务逻辑处理、管理数据的存储和一致性。
31、项目中为什么使用SSH?
1.使用Struts是因为struts是基于MVC模式的,很好的将应用程序进行了分层,使开发者更关注于业务逻辑的实现;第二,struts有着丰富的taglib,如能灵活运用,则能大大提高开发效率。
2.使用Hibernate:
因为hibernate为Java应用提供了一个易用的、高效率的对象关系映射框架。
hibernate是个轻量级的持久性框架,功能丰富。
3.使用Spring:
因为spring基于IoC(InversionofControl,反向控制)和AOP构架多层j2ee系统的框架,但它不强迫你必须在每一层中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;
采用IoC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现事务管理(TranscationManagment),等等
32、在Struts2中,action是单实例还是多实例,为什么?
struts2的Action是多实例的并非单例,也就是每次请求产生一个Action的对象。
原因是:
struts2的Action中包含数据,例如你在页面填写的数据就会包含在Action的成员变量里面。
如果Action是单实例的话,这些数据在多线程的环境下就会相互影响,例如造成别人填写的数据被你看到了。
所以Struts2的Action是多例模式的。
33、Hibernate与jdbc的联系?
hibernate是jdbc的轻量级封装,包括jdbc的与数据库的连接(用的配置文件实现当然本质是封装了jdbc的forname),和查询,删除等代码,都用面向对象的思想用代码联系起来,hibernate通过hbm配置文件把po类的字段和数据库的字段关联起来比如数据库的id,在po类中就是praviteLongid;publicLonggetId();publicsetId(Longid);然后hql语句也是面向对象的,它的查询语句不是查询数据库而是查询类的,这些实现的魔法就是xml文件,其实hibernate=封装的jdbc+xml文件
34、一般用spring做什么?
Spring是一个解决了许多在开发中常见的问题的强大框架。
Spring提供了管理的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。
Spring的架构基础是基于使用属性的InversionofControl容器。
然而,这仅仅是完整图景中的一部分:
Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。
Spring提供了唯一的数据访问抽象,包括简单和有效率的框架,极大的改进了效率并且减少了可能的错误。
Spring的数据访问架构还集成了和其他O/Rmapping解决方案。
Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。
Spring提供了一个用标准语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。
这个框架足够强大,使得应用程序能够抛开的复杂性,同时享受着和传统EJB相关的关键服务。
Spring还提供了可以和IoC容器集成的强大而灵活的MVCWeb框架。
35、C/S与B/S的区别?
C/S架构是一种典型的两层架构,其全程是,即客户端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而有两种,一种是数据库,客户端通过数据库连接访问服务器端的数据;另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信。
C/S架构也可以看做是架构。
因为客户端需要实现绝大多数的和界面展示。
这种架构中,作为客户端的部分需要承受很大的压力,因为显示逻辑和事务处理都包含在其中,通过与数据库的交互(通常是SQL或存储过程的实现)来达到持久化数据,以此满足实际项目的需要。
的全称为Browser/Server,即浏览器/服务器结构。
Browser指的是,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现,Browser客户端,WebApp服务器端和DB端构成所谓的三层架构。
的系统无须特别安装,只有即可。
B/S架构中,显示逻辑交给了,事务处理逻辑在放在了WebApp上,这样就避免了庞大的,减少了客户端的压力。
因为客户端包含的逻辑很少,因此也被成为。
36、J2EE常用的设计模式?
说明工厂模式?
Java中的23种设计模式:
Factory(工厂模式),Builder(建造模式),FactoryMethod(工厂方法模式),Prototype(原始模型模式),Singleton(单例模式),Facade(门面模式),Adapter(适配器模式),Bridge(桥梁模式),Composite(合成模式),Decorator(装饰模式),Flyweight(享元模式),Proxy(代理模式),Command(命令模式),Interpreter(解释器模式),Visitor(访问者模式),Iterator(迭代子模式),Mediator(调停者模式),Memento(备忘录模式),Observer(观察者模式),State(状态模式),Strategy(策略模式),TemplateMethod(模板方法模式),ChainOfResponsibleity(责任链模式)
工厂模式:
工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。
首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。
然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。
当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。
37、BeanFactory的作用是什么?
BeanFactory提供的高级配置机制,使得管理任何性质的对象成为可能。
在Spring中,BeanFactory是IoC容器的核心接口。
它的职责包括:
实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。
Spring为我们提供了许多易用的BeanFactory实现,XmlBeanFactory就是最常用的一个。
该实现将以XML方式描述组成应用的对象以及对象间的依赖关系。
XmlBeanFactory类将持有此XML配置元数据,并用它来构建一个完全可配置的系统或应用。
Ajax的工作原理?
通过javascript的方式,将前台数据通过xmlhttp对象传递到后台,后台在接收到请求后,将需要的结果,再传回到前台,这样就可以实现不需要页面的回发,页是数据实现来回传递,从页实现无刷新。
39、何为容器?
容器是一个Java所编写的程序,原先必须自行编写程序以管理对象关系,现在容器都会自动帮您作好。
常用容器,,Resin,
40、Spring配置文件中的ref元素的作用是什么?
它的两个基本属性是什么?
用于指定属性值为spring容器中的其它bean.两个基本属性是bean和local
41、Hibernate具有的三种检索方式?
HQL检索方式QBC检索方式SQL检索方式
42、什么是IOC,请详述?
不创建对象,但是描述创建它们的方式。
在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。
容器(在Spring框架中是IOC容器)负责将这
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EE考试题目及答案 EE 考试 题目 答案