J2EE考试题目及答案.doc

上传人:坚持 文档编号:3598739 上传时间:2019-06-20 格式:DOC 页数:14 大小:74KB
下载 相关 举报
J2EE考试题目及答案.doc_第1页
第1页 / 共14页
J2EE考试题目及答案.doc_第2页
第2页 / 共14页
J2EE考试题目及答案.doc_第3页
第3页 / 共14页
J2EE考试题目及答案.doc_第4页
第4页 / 共14页
J2EE考试题目及答案.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、J2EE简答题1、简述 J2EE的四层模型。运行在客户端机器上的客户层组件;运行在 J2EE服务器上的 Web层组件;运行在J2EE服务器上的业务逻辑层组件;运行在 EIS服务器上的企业信息系统层软件2、什么是对象持久化?即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML 数据文件中等等。3、简述一下 ORMAPPING,为什么我们使用它?ORM(Object Relational Mapping)是一种为了解决面向对象与关系型数据库存在的互不匹配的现象的技术。简单说:ORM 是通过使用描

2、述对象和数据库之间映射的元数据,将 Java程序中的对象自动持久化到关系数据中。本质上就是将数据从一种形式转换到另外一种形式。原因:用它来架起对象和关系型数据库的桥梁,可解决对象层次的映射、对象关系的映射以及对象的持久化问题。4、简述一下如何使用 Hibernate实现对象持久化的过程(可画图或用伪码描述)STEP 1:创建 Configuration对象。在这一步中主要为了进行配置文件的装载操作,读取所有的配置文件并进行解析、STEP 2: 创建 SessionFactory对象。通过创建好的 Configuration对象可以创建一个 sessionFactory对象的实例,同时是生成 S

3、ession对象实例的工厂,他在整个应用中应该是,唯一的。STEP 3:创建 Session对象。 Session 对象类似于数据库的连接对象,可以理解为与数据库建立的一个连接,但是他的功能要比 JDBC中的 Connection对象丰富很多。STEP 4:开始一个事务。在 Java中定义一个事务操作的开始,这是使用Hibernate进行持久化操作必不可少的步骤STEP 5:进行持久化操作。在这个步骤中可以读取或者保存 Java对象。STEP 6:结束事务。在操作完成之后还要进行显式的结束事务的操作。STEP 7:关闭 Session。类似于释放数据库的连接。5、为什么要实现序列化?1、序列化

4、以某种存储形式使自定义对象持久化2、序列化将对象转换为可传输方式从一个地方传递到另一个地方3、序列化使程序更具维护性6、比较一下 sessionFactory中的 opensession()和getcurrentsession()方法1、getCurrentSession 创建的 session会和绑定到当前线程,而 openSession不会。2 、getCurrentSession 创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭7、比较一下 session中的 load()和 get()方法,以及如何保证每次都是从数据库读取而不是在缓存中读?load()和

5、 get()方法均可以根据指定的实体类和 id从数据库读取记录,并返回与之对应的实体对象。其区别在于:如果未能发现符合条件的记录,get 方法返回 null,而 load方法会抛出一个 ObjectNotFoundException。Load方法可返回实体的代理类实例,而 get方法永远直接返回实体类。load方法可以充分利用内部缓存和二级缓存中的现有数据,而 get方法则仅仅在内部缓存中进行数据查找,如没有发现对应数据,将越过二级缓存,直接调用 SQL完成数据读取。8、Action 接受用户参数输入,主要有哪几种方式?我们常用的是哪一种? 1.Action属性接收参数;2Domain mod

6、al(域模型)接收参数;3.Modal driven接收参数。常用第一种跟第二种9、在 struts中实现一个 action有哪几种方式?最常用的是哪种?1定义一个普通的类,类中只要有一个 public String execute()方法且返回一个字符串即可。2.定义一个类,实现 Action接口,xwork2.Action 这个包的3继承 xwork2.ActionSupport这个类。最常用的是第三种10、在 struts.xml中 Result的 type常用的有四种类型1)dispatcher 2)redirect 3)chain 4)redirectAction哪些是服务器跳转?哪

7、些是客户端跳转?dispatcher和 chain是服务器端跳转,所以客户端只发起一次请求redirect和 redirectAction是客户端跳转,所以客户端发起两次请求。11、j2ee 是技术还是平台还是框架?它主要包含哪些技术,列举并简单描述 2到 3个技术?J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。J2EE也是一个框架,包括 JDBC、JNDI、RMI、JMS、EJB、JTA 等技术。JDBC:是一种用于执行 SQL语句的 Java API,可以为多种关系数据库提供统一访问,它由一组用 Java语言编写的类和接口组成。RMI:RMI协议调用远程对象上的方法。它

8、使用了序列化方式在客户端和服务器端传递数据。RMI 是一种被 EJB使用的更底层的协议。12、MVC 的各个部分都有哪些技术来实现?如何实现?MVC是 ModelViewController 的简写。“Model“ 代表的是应用的业务逻辑(通过 JavaBean,EJB 组件实现), “View“ 是应用的表示面(由 JSP页面产生),“Controller“ 是提供应用的处理过程控制(一般是一个 Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。13、什么是 JNDI?JNDI是 SUN公司提供的一种标准的 Java命名系统接口,

9、JNDI 提供统一的客户端 API,通过不同的访问提供者接口 JNDI SPI的实现,由管理者将 JNDI API映射为特定的命名服务和目录系统,使得 Java应用程序可以和这些命名服务和目录服务之间进行交互。14、举例并简单描述 2到 3种动态网页开发技术。1、PHP,是英文超文本预处理语言 Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入 HTML文档的脚本语言,语言的风格有类似于 C语言,被广泛地运用。2、ASP,它是微软公司开发的代替 CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程

10、工具。ASP 的网页文件的格式是.asp,现在常用于各种动态网站中。15、简单描述浏览器输入http:/localhost:8088/myFirstweb/Firstservlet访问 web资源的过程(也就是 servlet工作的时序图)(提示,解释地址用端口号和地址访问服务器访问资源)。1浏览器会将请求打包成 http请求数据包,发送给 web服务器,2web 服务器中的 servlet引擎解析请求并封装为一个 HttpServletRequest对象(包含了请求数据),同时创建个 HttpServletResponse对象。3servlet 调用 servlet的 service()方法

11、,并将HttpServletReque,HttpServletResponse 对象作为参数传递给 servlet实例4 servlet 可以从 HttpServletRequest对象中获得请求数据,并处理,当然,servlet也可能要访问数据库。然后将处理之后的结果放到HttpServletResponse中。5servlet 引擎从 HttpServletResponse中取数据,并将数据打包成 http数据包发送给浏览器。16、开发 servlet服务器程序三种方法。开发 servlet有三种方法:a,实现 servlet接口; b,继承 GenericServet; c,继承 Htt

12、pServlet17、通过 httpservlet去开发 servlet,需要重写 doGet和 doPost方法。这是常用的方式,请简述 Get与 Post方法的区别。(1)get 是从服务器上获取数据,post 是向服务器传送数据。在客户端,Get 方式在通过 URL提交数据,数据在 URL中可以看到;POST 方式,数据放置在 HTML HEADER内提交。(2)对于 get方式,服务器端用 Request.QueryString获取变量的值,对于post方式,服务器端用 Request.Form获取提交的数据。(3)GET 方式提交的数据最多只能有 1024字节,而 POST则没有此限

13、制。(4)安全性问题。使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。所以,还是使用 post 为好。 18、简述 http返回包中的状态码 200,302,404,500 的意义。200 请求已成功,请求所希望的响应头或数据体将随此响应返回。302 请求的资源现在临时从不同的 URI响应请求。404 请求失败,请求所希望得到的资源未被在伺服器上发现。500 伺服器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理.19、简述请求重定向(response.sendRedirect)和请求转发(getRequestDispatcher forward)的区别。1、forwar

14、d()只能将请求转发给同一个 Web应用中的组件,而 sendRedirect()方法不仅可以重定向到当前应用程序中的其他资源,还可以重定向到其他站点的资源。2、sendRedirect()方法重定向的访问过程结束后,浏览器地址栏中显示的 URL会发生改变,由初始的 URL地址变成重定向的目标 URL;而调用 forward()方法的请求转发过程结束后,浏览器地址栏保持初始的 URL地址不变。3、forward()方法的调用者与被调用者之间共享相同的 request对象和response对象;而 sendRedirect()方法调用者和被调用者使用各自的 request对象和 response

15、对象,它们属于两个独立的请求和响应过程。20、Hibernate 拒绝连接、服务器崩溃的原因?最少写三个?1. db没有打开2. 网络连接可能出了问题3. 连接配置错了4. 驱动的 driver,url 是否都写对了5. LIB下加入相应驱动,数据连接代码是否有误6. 数据库配置可能有问题7. 当前联接太多了,服务器都有访问人数限制的8. 服务器的相应端口没有开,即它不提供相应的服务9 hibernate有哪些缓存,分别怎么使用?10 你对 hibernate的了解到了一个什么样的程度?11 写出一个 sql语句体现 hibernate中一对多的关系21、Update()和 saveOrUpd

16、ate()的区别?update()方法操作的对象必须是持久化了的对象。也就是说,如果此对象在数据库中不存在的话,就不能使用 update()方法。saveOrUpdate()方法操作的对象既可以使持久化了的,也可以使没有持久化的对象。如果是持久化了的对象调用 saveOrUpdate()则会更新数据库中的对象;如果是未持久化的对象使用此方法,则 save到数据库中。22、Hibernate 的三种状态之间如何转换?当对象由瞬时状态(Transient)一 save()时,就变成了持久化状态。当我们在Session里存储对象的时候,实际是在 Session的 Map里存了一份,也就是它的缓存里放

17、了一份,然后,又到数据库里存了一份,在缓存里这一份叫持久对象(Persistent)。Session 一 Close()了,它的缓存也都关闭了,整个Session也就失效了,这个时候,这个对象变成了游离状态(Detached),但数据库中还是存在的。当游离状态(Detached)update()时,又变为了持久状态(Persistent)。当持久状态(Persistent)delete()时,又变为了瞬时状态(Transient),此时,数据库中没有与之对应的记录。23、工厂模式?工厂模式主要是为创建对象提供了接口。工厂模式按照Java 与模式中的提法分为三类:1. 简单工厂模式(Simple

18、 Factory) 2. 工厂方法模式(Factory Method) 3. 抽象工厂模式(Abstract Factory) 这三种模式从上到下逐步抽象,并且更具一般性。还有一种分类法,就是将简单工厂模式看为工厂方法模式的一种特例,两个归为一类。下面是使用工厂模式的两种情况:1.在编码时不能预见需要创建哪种类的实例。2.系统不应依赖于产品类实例如何被创建、组合和表达的细节24、抽象类和接口的区别?接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的, 另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般

19、的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。 还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如 Remote 接口)和数据共享(里面的变量全是常量)的作用.25、Forward 和 redirect的区别?forward 是服务器请求资源,服务器直接访问目标地址的 URL,把那个 URL 的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。 redirect 就是服务端根据逻辑,发送一个状态码, 告诉浏览器重新去请求那个地

20、址,一般来说浏览器会用刚才请求的所有参数重新请求,所以 session,request 参数都可以获取。26、持久化对象的三种状态,代表含义?瞬时态:简单的说就是你在程序里面 new 一个对象,还没有和 session 关联持久态:对象和 session 有了关联,对象处于 hibernate 框架管理中 游离态:在持久态的情况下,对象和 session 失去了关联,比如 session.close()或session.flush() 后,即游离态,但数据已经存储到了数据库27、页面之间的值传递?1:可以分成多个参数对的方式用 querystring 传递。2:可以用特定的字符分隔后组成一个字

21、符串,再用一个参数对的 querystring 方式传递。3:如果是第三信息的话,可以用在服务器端的 session 方式传递,一般不用这种方式。因为占服务器资源。4:也可以用 cookie 方式传递。5:当然还可以用其它的不常的方式传递。28、Struts 框架的数据验证可分为几种类型?表单验证(由 ActionForm Bean 处理):如果用户没有在表单中输入姓名,就提交表单,将生成表单验证错误业务逻辑验证(由 Action 处理):如果用户在表单中输入的姓名为“Monster”,按照本应用的业务规则,不允许向“Monster”打招呼,因此将生成业务逻辑错误。29、写一个 Singlet

22、on模式的例子?public class Singleton private static final Singleton singleton = new Singleton();private Singleton() public static Singleton getInstance() return singleton; 30、谈谈你 MVC的理解?MVC 是一种设计模式,它强制的将应用程序的输入、处理、和输出分开。 使用了MVC 的应用程序被分为 3 个核心部件: 试图(View)、模型 (Model)、控制器(Controller) 。它们各司其职,既分工明确又相互合作。 首先视图

23、接受用户输入请求,然后将请求传递给控制器,控制器再调用某个模型来处理用户的请求,在控制器的控制下,再将处理后的结果交给某个视图进行格式化输出给用户.这是经典的 MVC 设计执行的基本流程。MVC 不仅实现了功能模块和显示模块的分离,同时它还提高了系统的可维护性、可扩展性和组件的可复用性,是一个优秀的创建软件的途径。 J2EE 把 MVC 引入了 web 领域,并在此基础上架构出了一套称为 Model2 的体系。Model2 体系及 jsp 作为视图显示输出和接受用户输入数据,Servlet 作为控制器处理用户请求并根据用户请求选择相应的 jsp 返回给用户,javaBean 作为模型组件用作业

24、务逻辑处理、管理数据的存储和一致性。31、项目中为什么使用 SSH?1. 使用 Struts是因为 struts 是基于 MVC模式的,很好的将应用程序进行了分层,使开发者更关注于业务逻辑的实现;第二,struts 有着丰富的 taglib,如能灵活运用,则能大大提高开发效率。2. 使用 Hibernate:因为 hibernate为 Java应用提供了一个易用的、高效率的对象关系映射框架。hibernate 是个轻量级的持久性框架,功能丰富。3. 使用 Spring:因为 spring基于 IoC(Inversion of Control,反向控制)和AOP构架多层 j2ee系统的框架,但它

25、不强迫你必须在每一层中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;采用 IoC使得可以很容易的实现 bean的装配,提供了简洁的 AOP并据此实现事务管理(Transcation Managment),等等32、在 Struts2中,action 是单实例还是多实例,为什么?struts 2的 Action是多实例的并非单例,也就是每次请求产生一个 Action的对象。原因是:struts 2 的 Action中包含数据,例如你在页面填写的数据就会包含在 Action的成员变量里面。如果 Action是单实例的话,这些数据在多线程的环境下就会相互影响,

26、例如造成别人填写的数据被你看到了。所以Struts2的 Action是多例模式的。33、Hibernate 与 jdbc的联系?hibernate是 jdbc的轻量级封装,包括 jdbc的与数据库的连接(用hibernate.property的配置文件实现当然本质是封装了 jdbc的 forname),和查询,删除等代码,都用面向对象的思想用代码联系起来,hibernate 通过 hbm 配置文件把 po类的字段和数据库的字段关联起来比如数据库的 id,在 po类中就是 pravite Long id; public Long getId() ;public setId(Long id);然后

27、hql语句也是面向对象的,它的查询语句不是查询数据库而是查询类的,这些实现的魔法就是 xml文件,其实 hibernate=封装的 jdbc+xml文件34、一般用 spring做什么?Spring是一个解决了许多在 J2EE开发中常见的问题的强大框架。 Spring 提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring 的架构基础是基于使用 JavaBean属性的 Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring 在使用 IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。 Spring 提供了唯

28、一的数据访问抽象,包括简单和有效率的 JDBC框架,极大的改进了效率并且减少了可能的错误。Spring 的数据访问架构还集成了 Hibernate和其他 O/R mapping解决方案。Spring 还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如 JTA或者 JDBC事务提供一个一致的编程模型。Spring 提供了一个用标准 Java语言编写的 AOP框架,它给 POJOs提供了声明式的事务管理和其他企业事务-如果你需要-还能实现你自己的 aspects。这个框架足够强大,使得应用程序能够抛开 EJB的复杂性,同时享受着和传统 EJB相关的关键服务。Spring还提供了可以和

29、IoC容器集成的强大而灵活的 MVC Web框架。35、C/S 与 B/S的区别?C/S 架构是一种典型的两层架构,其全程是 Client/Server,即客户端服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据;另一种是 Socket服务器端,服务器端的程序通过 Socket与客户端的程序通信。C/S 架构也可以看做是胖客户端架构。因为客户端需要实现绝大多数的业务逻辑和界面展示。这种架构中,作为客户端的部分需要承受很大的压力,因为显示逻辑和事务处理都包含在其中,通过与数据库的交互(通常是 SQL或存储过

30、程的实现)来达到持久化数据,以此满足实际项目的需要。B/S架构的全称为 Browser/Server,即浏览器/服务器结构。Browser 指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现,Browser客户端,WebApp 服务器端和 DB端构成所谓的三层架构。 B/S架构的系统无须特别安装,只有 Web浏览器即可。B/S 架构中,显示逻辑交给了 Web浏览器,事务处理逻辑在放在了 WebApp上,这样就避免了庞大的胖客户端,减少了客户端的压力。因为客户端包含的逻辑很少,因此也被成为瘦客户端。36、J2EE 常用的设计模式?说明工厂模式?Java中的 23种设计模式

31、:Factory(工厂模式),Builder(建造模式),Factory Method(工厂方法模式),Prototype(原始模型模式),Singleton(单例模式),Facade(门面模式),Adapter(适配器模式),Bridge(桥梁模式), Composite(合成模式),Decorator(装饰模式), Flyweight(享元模式), Proxy(代理模式),Command(命令模式), Interpreter(解释器模式), Visitor(访问者模式),Iterator(迭代子模式), Mediator(调停者模式), Memento(备忘录模式),Observer(观察

32、者模式), State(状态模式), Strategy(策略模式),Template Method(模板方法模式), Chain Of Responsibleity(责任链模式)工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。37、BeanFactory 的作用是什么?BeanFactory提供的高级配置机制,使得管理任何性质的对象成为可能。在Spring中,BeanFactory 是 IoC容器的核心接口。它的职责包括:实例化、定

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。