1. BeanFactory的作用是什么? [中]
BeanFactory是配置、创建、管理bean的容器,有时候也称为bean上下文。Bean与bean的依赖关系,也是由BeanFactory负责维护的。
2. bean在spring的容器中两种基本行为是什么? [中]
Singleton:单态
Non-singleton或prototype:原型
3. spring配置文件中的ref元素的作用是什么?它的两个基本属性是什么? [中]
用于指定属性值为spring容器中的其它bean.两个基本属性是bean和local
4. 什么是DWR?它有哪些功能? [中]
DWR(Direct Web Remoting)是一个WEB远程调用框架. 可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript DWR根据Java类来动态生成JavaScrip代码.
支持Dom Trees,支持Spring,支持commons-logging
5. Ajax的工作原理 ? [难]
在会话的开始,浏览器加载Ajax引擎
请求动作通过JavaScript调用Ajax引擎来代替.
引擎负责绘制用户界面以及与服务器端通讯。
Ajax引擎采用异步交互过程--不用等待服务器的通讯。
6. XMLHttpRequest对象是什么,它有哪些常用方法? [难]
一个 JavaScript 对象。是Ajax 的核心。
该对象的方法和属性。
open():建立到服务器的新请求。
send():向服务器发送请求。
abort():退出当前请求。
readyState:提供当前 HTML 的就绪状态。
responseText:服务器返回的请求响应文本。.
8. 什么是Ajax? [易]
AJAX(Asynchronous JavaScript and XML),它不是一门新的语言或技术,而是多种技术的综合,包括:
Javascript
XHTML
CSS
DOM
XML
XSTL
XMLHttpRequest
9. 同步与异步的区别? [ 难]
普通B/S模式(同步)AJAX技术(异步)
同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事,而异步则是 请求通过事件触发->服务器处理->处理完毕
同步是阻塞模式,异步是非阻塞模式。
同步(发送方发出数据后,等接收方发回) 异步(发送方发出数据后,不等接收方发回响应)
10. Struts+Hibernate+Spring开发模式中Hibernate扮演的角色 [中]
答:Hibernate扮演的是数据持久层 它的作用是实现持久化对象和数据库表
之间的映射,形成持久化对象和数据库表中数据的一个转换平台
11. 什么是Hibernate 的抓取策略 [难]
抓取策略是指当应用程序需要利用关联关系进行对象获取的时候。
容器就是符合某种规范的能够提供一系列服务的管理器。
答: 工厂模式 和 单例模式
答 Transient(瞬态) ,persistent(持久态)和Detached(游历态)
答:直接将参数拼写为HQL语句
通过参数名称来标识参数
16. Hibernate实体之间的关联关系的三种形式 [中]
答 一对一关联
一对多关联
多对多关联
答:HQL检索方式
QBC检索方式
SQL检索方式
Depends-on用于当前Bean初始化之前显示的强制一个或多个bean被初始化
BeanWrapper类是一个对JavaBean进行各种操作的工具类
BeanWrapper本身是一个接口BeanWrapperImpl实现了BeanWrapper
答:save-update
答:session.close();方法后
答:inverse属性只存在于集合标记的元素中集合元素包括,,,,
Inverse属性的作用是是否将对集合对象的修改反射到数据库中 inverse=”false”时修改反射到数据库中 inverse=”true” 时修改不反射到数据库中
Cascade属性的作用是描述关联对象进行操作时的级联特性,因此只有涉及到关系的元素才有cascade属性
答:①记录不存在时 get()方法会返回空(null),而load()方法将会抛出一个HibernateException异常 ② load()方法查询数据时会先找Hibernate的内部缓存和二级缓
存中的现有数据,get()方法在内部缓存中没有达到相对应的数据时装直接执行SQL语句
进行查询
答:HQL是面向对象的查询语言,它可以查询以对象形式存在的数据。
25. Hibernate简介以及主要功能 [中]
答:Hibernate是采用ORM模式实现数据持久层的一个优秀的JAVA组件,它提供了
强大,高效的将JAVA对象进行持久化操作的服务
26. 简述Hibernate的优点 [难]
答:开源和免费的License,我可以在需要的时候研究源代码,改写源代码,进行功能的定制。轻量级封装,避免引入过多复杂的问题,调试容易,也减轻程序员的负担。
具有可扩展性,API开放,当本身功能不够用的时候,可以自己编码进行扩展。
答: Hibernate的SessionFactory接口提供Session类的实例,Session类用于完成对数据库的操作。
由于SessionFactory实例是线程安全的(而Session实例不是线程安全的),所以每个操作都可以共用同一个SessionFactory来获取Session。Hibernate配置文件分为两种格式,一种是xml格式的配置文件,另一种是Java属性文件格式的配置文件
(1)创建一个Configuration对象,并通过该对象的configura()方法加载Hibernate配置文件,代码如下。
Configuration config = new Configuration().configure();
configura()方法:用于告诉Hibernate加载hibernate.cfg.xml文件。Configuration在实例化时默认加载classpath中的hibernate.cfg.xml,当然也可以加载名称不是hibernate.cfg.xml的配置文件,例如wghhibernate.cfg.xml,可以通过以下代码实现。
Configuration config = new Configuration().configure("wghhibernate.cfg.xml");
(2)完成配置文件和映射文件的加载后,将得到一个包括所有Hibernate运行期参数的Configuration实例,通过Configuration实例的buildSessionFactory()方法可以构建一个惟一的SessionFactory,代码如下:
SessionFactory sessionFactory = config.buildSessionFactory();
构建SessionFactory要放在静态代码块中,因为它只在该类被加载时执行一次。
1. 谈谈你mvc的理解
MVC是Model—View—Controler的简称。即模型—视图—控制器。MVC是一种设计模式,它强制性的把应用程序的输入、处理和输出分开。MVC中的模型、视图、控制器它们分别担负着不同的任务。
(1)视图: 视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并接受用户的输入。视图不进行任何业务逻辑处理。
(2)模型: 模型表示业务数据和业务处理。相当于JavaBean。一个模型能为多个视图提供数据。这提高了应用程序的重用性
(3)控制器: 当用户单击Web页面中的提交按钮时,控制器接受请求并调用相应的模型去处理请求。然后根据处理的结果调用相应的视图来显示处理的结果。
MVC的处理过程:首先控制器接受用户的请求,调用相应的模型来进行业务处理,并返回数据给控制器。控制器调用相应的视图来显示处理的结果。并通过视图呈现给用户。
2. 项目中为什么使用SSH
(1) 使用Struts2是因为struts2是基于MVC模式的,很好的将应用程序进行了分层,使开发者更关注于业务逻辑的实现;第二,struts有着丰富的taglib,如能灵活运用,则能大大提高开发效率。
(2)使用Hibernate:因为hibernate为Java应用提供了一个易用的、高效率的对象关系映射框架。hibernate是个轻量级的持久性框架,功能丰富。
(3)使用Spring:因为spring基于IoC(Inversion of Control,反向控制)和AOP构架多层j2ee系统的框架,但它不强迫你必须在每一层中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用 它的某一个模块;采用IoC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现事务管理(Transcation Managment),等等