SSH三大框架Struts Spring HibernateWord文档下载推荐.docx

上传人:b****1 文档编号:4816105 上传时间:2023-05-04 格式:DOCX 页数:16 大小:26.15KB
下载 相关 举报
SSH三大框架Struts Spring HibernateWord文档下载推荐.docx_第1页
第1页 / 共16页
SSH三大框架Struts Spring HibernateWord文档下载推荐.docx_第2页
第2页 / 共16页
SSH三大框架Struts Spring HibernateWord文档下载推荐.docx_第3页
第3页 / 共16页
SSH三大框架Struts Spring HibernateWord文档下载推荐.docx_第4页
第4页 / 共16页
SSH三大框架Struts Spring HibernateWord文档下载推荐.docx_第5页
第5页 / 共16页
SSH三大框架Struts Spring HibernateWord文档下载推荐.docx_第6页
第6页 / 共16页
SSH三大框架Struts Spring HibernateWord文档下载推荐.docx_第7页
第7页 / 共16页
SSH三大框架Struts Spring HibernateWord文档下载推荐.docx_第8页
第8页 / 共16页
SSH三大框架Struts Spring HibernateWord文档下载推荐.docx_第9页
第9页 / 共16页
SSH三大框架Struts Spring HibernateWord文档下载推荐.docx_第10页
第10页 / 共16页
SSH三大框架Struts Spring HibernateWord文档下载推荐.docx_第11页
第11页 / 共16页
SSH三大框架Struts Spring HibernateWord文档下载推荐.docx_第12页
第12页 / 共16页
SSH三大框架Struts Spring HibernateWord文档下载推荐.docx_第13页
第13页 / 共16页
SSH三大框架Struts Spring HibernateWord文档下载推荐.docx_第14页
第14页 / 共16页
SSH三大框架Struts Spring HibernateWord文档下载推荐.docx_第15页
第15页 / 共16页
SSH三大框架Struts Spring HibernateWord文档下载推荐.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

SSH三大框架Struts Spring HibernateWord文档下载推荐.docx

《SSH三大框架Struts Spring HibernateWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《SSH三大框架Struts Spring HibernateWord文档下载推荐.docx(16页珍藏版)》请在冰点文库上搜索。

SSH三大框架Struts Spring HibernateWord文档下载推荐.docx

•6、绑定值到视图技术:

Struts1使用标准的JSP,Struts2使用“ValueStack”技术

•7、类型转换:

Struts1中的ActionForm基本使用String类型的属性。

Struts2中使用OGNL进行转换,可以更方便的使用

•8、数据校验:

Struts1中支持覆盖validate方法或者使用Validator框架。

Struts2支持重写validate方法或者使用XWork的验证框架。

4、在Struts2中下面的xml文件的加载顺序:

struts-default.xml—>

struts-plugin.xml—>

struts.xml—>

web.xml

5、怎么调用Ation中的指定方法(使用两种方式),文字描述:

(1).动态方法调用例:

userAction!

enroll

(2).通配符(*)的使用例:

method{*}

6、常用结果的类型:

(写出三种)

dispatcher,redirect,redirectAction

7、使用什么标签来完成其它xml配置文件的包含?

<

includefile="

struts-constant.xml"

>

<

/include>

8、Result标签中name的五个常量:

success、input、error、login、none

9、如何实现一个拦截器的功能?

Struts通过<

interceptors>

和<

interceptor>

定义拦截器

在action标签中,我们使用<

interceptor-ref>

子元素引用已经定义的拦截器

10、说说ActionMapper,ActionProxy,ActionInvocation作用:

(1)根据请求的URI查找是否存在对应Action调用

(2)在XWork和真正的Action之间充当代理

(3)表示Action的执行状态,保存拦截器、Action实例

11、请说出10个系统自带的拦截器:

(写出名字,描述功能)

(1)Params拦截器:

负责将请求参数设置为Action属性

(2)servletConfig拦截器:

将源于ServletAPI的各种对象注入到Action

(3)fileUpload拦截器:

对文件上传提供支持

(4)exception拦截器:

捕获异常,并且将异常映射到用户自定义的错误页面

(5)validation拦截器:

调用验证框架进行数据验证

(6)workflow拦截器:

调用Action类的validate(),执行编码验证

(7)Timer拦截器:

记录Action执行的时间,并做为日志信息输出;

(8)I18n拦截器:

国际化

(9)Logger拦截器:

在日志信息中输出要执行的Action信息;

(10)Token拦截器:

核对当前Action请求(request)的有效标识,防止重复提交Action请求(request)

13、Struts2中的ActionSupport基类

基类中定义了五个标准的返回值,当然我们可以自己随意定义返回的名字。

  StringSUCCESS="

success"

;

//默认是SUCCESS类型

  StringNONE="

none"

  StringERROR="

error"

  StringINPUT="

input"

StringLOGIN="

login"

14、Struts2框架的大概处理流程如下

  1、加载类(FilterDispatcher)

  2、读取配置(struts配置文件中的Action)

  3、派发请求(客户端发送请求)

  4、调用Action(FilterDispatcher从struts配置文件中读取与之相对应的Action)

  5、启用拦截器(WebWork拦截器链自动对请求应用通用功能,如验证)

  6、处理业务(回调Action的execute()方法)

  7、返回响应(通过execute方法将信息返回到FilterDispatcher)

  8、查找响应(FilterDispatcher根据配置查找响应的是什么信息如:

SUCCESS、ERROER,将跳转到哪个jsp页面)

  9、响应用户(jsp--->

客户浏览器端显示)

10、struts2标签库(相比struts1的标签库,struts2是大大加强了,对数据的操作功能很强大)

Hibernate

1.openSession和getCurrentSession

在hibernate.cfg.xml中配置

propertyname="

current_session_context_class"

thread<

/property>

openSession:

永远打开新session

需要close

getCurrentSession:

(必须在事务中运行)

可能会打开新的session,可能拿到原来存在的

提交事务后自动关闭。

Sessionsession=HibernateSessionFactory.getSessionFactory().openSession();

Sessionsession2=HibernateSessionFactory.getSessionFactory().openSession();

System.out.println(session==session2);

2.Set集合配置(无序)

Teacher.hbm.xml

setname="

stus"

inverse="

true"

order-by="

stuId"

<

keycolumn="

teaId"

/key>

one-to-manyclass="

com.entity.Student"

/>

<

/set>

Student.hbm.xml

many-to-onename="

teacher"

class="

com.entity.Teacher"

column="

/many-to-one>

1.什么是持久化

a)就是将程序数据在瞬时状态和持久状态之间转换的机制

2.什么是ORM

a)对象关系映射。

是一种解决面向对象与关系数据库存在的不匹配技术

3.为什么要使用Hibernate

a)Hibernate对JDBC进行了轻量级的封装,可以使用面向对象的思想操作数据库

b)开发工作量小,可以将精力集中在业务逻辑的处理上

4.hibernate操作三个准备、7个步骤

a)三个准备:

1.添加Hibernate库

2.添加Hibernate配置文件

3.添加对应表的实体类和映射文件

b)七个步骤:

(1).读取配置文件

[Configurationcfg=newConfiguration().configure()]

(2).创建会话工厂[SessionFactory]

(3).创建会话[Session,相当于JDBC中的Connectio]

(4).开启事务[Transaction、session.beginTransaction()]

(5).持久化操作[save(),update()]

(6).提交事务[commit()]

(7).关闭session

5.主键生成器方式

idname=””>

<

generator>

native<

/generator>

/id>

6.Hibernate中实体对象的三种状态

(1).瞬时状态:

没有持久化标识,仅为一个对象,与数据库无任何关联。

(2).持久状态:

拥有持久化标识,并且在数据库中存在与之对应的记录。

(3).游离状态:

拥有持久化标识,在数据库中存在与之对应的记录。

但由于session的关闭处于脱管状态。

7.inverse、cascade,lazy、fetch区别

a)inverse和cascade

1.Inverse是反转,表示关联关系的控制权。

为true,表示由对方负责关联关系的添加和删除;

为false,表示由自己负责维护关联关系。

2.cascade是自动级联。

有4个属性:

i.all:

对所有操作都进行级联

ii.none:

对所有操作都不进行级联

iii.save-update:

执行更新操作时级联

iv.delete:

执行删除操作时级联

b)lazy和fetch

1.lazy懒加载:

只有真正使用该对象时,hibernate才会发出查询语句,并且lazy策略只有在session打开状态下有效。

2.fetch抓取策略:

(join、select、subselect)

8.get和load区别

(1).执行时

get():

迫切加载。

会马上发出查询语句

load():

延迟加载。

不会立刻发出查询语句,由于支持lazy,只有当需要访问被加载实体属性的时候才发出查询语句。

(2).异常时(没查到数据时)

会引发空指针(java.lang.NullPoniterException)

会引发异常(org.hibernate.ObjectNotFoundException)

9.list和iterator区别

a)List:

返回的是一个集合对象,可以按照索引位置来随机访问结果集中的对象。

查询过程中不会读取缓存,尤其是一级缓存,而是直接执行SQL语句,执行结果会被保存在一级缓存中。

b)Iterate:

返回的是一个Iterate对象,只能按照从前向后的顺序一次读取数据库中的记录。

它每次访问均查询一级缓存,但Query.iterator记载数据的方式不是完整的SQL语句,而是N+1条SQL语句

10.CRUD代表什么

a)Create、Read、Update、Delete

11.HQL和QBC区别(并说明QBC中使用了什么类和接口的功能)

HQL:

HibernateQueryLanguage(面向对象的查询语言)

QBC:

QueryByCriteria(它将数据的查询条件封装成一个对象)

Restrictions类主要生成Criteria接口执行数据库查询条件

Order类设置查询结果的排序规则(asc()、desc())

Projections类帮助Criteria接口完成数据的分组查询

12.实体间关系有几种,分别用什么标签

a)一对一:

one-to-one>

/one-to-one>

b)一对多:

one-to-many>

/one-to-many>

c)多对一:

many-to-one>

d)多对多:

many-to-many>

/many-to-many>

14.复合主键配置步骤

步骤一:

创建数据库表,设定联合主键约束

步骤二:

编写持久化类及主键类;

编写主键类时,必须满足以下要求:

(1)实现Serializable接口

(2)覆盖equals()和hashCode()方法

(3)属性必须包含主键的所有字段

步骤三:

编写*.hbm.xml配置文件

composite-idname="

"

key-propertyname="

columnname="

/>

/key-property>

>

/composite-id>

15.HQL中?

号和:

参数名占位符的区别

问号占位符:

通过?

号占位符如果改变,影响到其他操作

参数名:

可以自己定义名字,参数改变不影响其他操作

16.hibernate怎么实现分现分页功能,比方我要取第2页,显示10条记录

setFirstResult((pageNum-1)*PageSize)

setMaxResult(PageSize)

17.事务所具备的四个特性

(1).Atomic原子性

(2).Consistency一致性

(3).Isoloation隔离性

(4).Durability持久性

18.请分别谈下JDBC事务和JTA事务

(1).JDBC:

单个连接,单个事务

(2).JTA:

提供各种分布式事务服务

19.事务并发的5种情况

(1).第一类更新丢失:

撤消一个事务时,把其它事务已提交成功的数据覆盖了

(2).第二类更新丢失:

不可重复读的特例,一个事务覆盖了另一个事务已提交更新的数据

(3).不可重复读:

一个事务两次读取同一行数据,两次读到的数据不一致

(4).脏读:

一个事务读到另一个事务没有提交更新的数据

(5).幻读:

一个事务执行两次查询操作,第二次查询比第一次查询多出了一些数据(插入和更新时)

20.hibernate锁的种类,并分别说明其实现方式

(1).悲观锁:

指在应用程序中显式地为数据资源加锁,先锁定资源再进行操作。

实现方式:

①在程序中显式指定采用数据库系统的独占锁来锁定数据资源;

②在数据库表中增加一个表明记录状态的LOCK字段。

(2).乐观锁:

完全依靠数据库的隔离级别来自动管理锁的工作,应用程序采用版本控制手段来避免可能出现的并发问题。

version版本控制。

在配置文件中要有:

versionname="

version"

VERSION"

其必须紧跟在<

id>

元素的后面。

数据库中的version(int)字段与version属性映射。

21.请分别谈谈一级缓存和二级缓存:

(1).一级缓存:

是Session级别的缓存,它同session绑定。

其生命周期随着session关闭而销毁

①它是线程不安全的,因此在设计软件架构时,应尽量避免多个线程共享一个Session实例。

②Session实例是轻量级的,这意味着在程序可以经常创建和销毁Session对象,例如为每个客户请求分配单独的Session实例。

原则:

一个线程一个Session;

一个事务一个Session。

(2).二级缓存:

是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存

Spring

1.你一般用spring做什么?

控制反转IOCAOP

2.spring中的哪个类的哪个方法可用于获取bean

3.spring是什么?

根据你的理解详细谈谈你的见解。

◆目的:

解决企业应用开发的复杂性

  ◆功能:

使用基本的JavaBean代替EJB,并提供了更多的企业应用功能

  ◆范围:

任何Java应用

  简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

  ◆轻量——从大小与开销两方面而言Spring都是轻量的。

完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。

并且Spring所需的处理开销也是微不足道的。

此外,Spring是非侵入式的:

典型地,Spring应用中的对象不依赖于Spring的特定类。

  ◆控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。

当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。

你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

  ◆面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务()管理)进行内聚性的开发。

应用对象只实现它们应该做的——完成业务逻辑——仅此而已。

它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

  ◆容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。

然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。

  ◆框架——Spring可以将简单的组件配置、组合成为复杂的应用。

在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。

Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。

  所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。

它们也为Spring中的各种模块提供了基础支持。

4.项目中如何体现Spring中的切面编程,距离说明。

面向切面编程:

主要是横切一个关注点,将一个关注点模块化成一个切面。

在切面上声明一个通知(Advice)和切入点(Pointcut);

通知:

是指在切面的某个特定的连接点(代表一个方法的执行。

通过声明一个org.aspectj.lang.JoinPoint类型的参数可以使通知(Advice)的主体部分获得连接点信息。

)上执行的动作。

通知中定义了要插入的方法。

切入点:

切入点的内容是一个表达式,以描述需要在哪些对象的哪些方法上插入通知中定义的方法。

项目中用到的Spring中的切面编程最多的地方:

声明式事务管理。

a、定义一个事务管理器

b、配置事务特性(相当于声明通知。

一般在业务层的类的一些方法上定义事务)

c、配置哪些类的哪些方法需要配置事务(相当于切入点。

一般是业务类的方法上)

5.spring中可以用注入获得属性值,还有其他的方式吗?

读取配置文件

6.spring在项目中如何充当粘合剂

1、在项目中利用spring的IOC(控制反转或依赖注入),明确地定义组件接口(如UserDAO),开发者可以独立开发各个组件,然后根据组件间的依赖关系组装(UserAction依赖于UserBiz,UserBiz依赖于UserDAO)运行,很好的把Struts(Action)和hibernate(DAO的实现)结合起来了。

2、spring的事务管理把hibernate对数据库的操作进行了事务配置。

7.spring的事务如何配置

spring的声明式事务配置:

1.<

!

--配置sessionFactory-->

beanid="

sessionFactory"

class="

org.springframework.orm.hibernate3.LocalSessionFactoryBean"

configLocation"

value>

/WEB-INF/classes/hibernate.cfg.xml<

/value>

/bean>

2.配置事务管理器

--配置事务管理器-->

transactionManager"

org.springframework.orm.hibernate3.HibernateTransactionManager"

reflocal="

3.配置事务特性

tx:

adviceid="

txAdvice"

tran

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2