struts2、hibernate、spring

来源:互联网 发布:python技术手册第三版 编辑:程序博客网 时间:2024/05/29 03:36
struts 
1. struts2配置文件是(struts.xml)


2. struts2核心控制器是(FilterDispatcher)


3. struts2配置文件中Action标签的class属性值是(action类的全名)
name属性的值是(代表Action的名称 从前台访问时的路径)


4. struts2配置文件中result标签的属性值 默认是(dispatcher)
重定向的值是(redirect)


5. Struts2自定义拦截器的三种实现方式
1) 实现 接口  Interceptor
2) 继承 抽象类  AbstractInterceptor 重写intercept方法
3) 继承 MethodFilterInterceptor类


6.struts2 的 运行原理
1. tomcat 启动加载Web.xml ,核心控制器FilterDispatcher 加载并解析 struts.xml
2. 客户端 发出请求到 Action ,FilterDispatcher 根据后缀名拦截
3. FilterDispatcher  根据 struts.xml配置文件信息 找到 指定的 Action方法
4. 执行相关的业务逻辑后 返回字符串
5. 根据返回字符串,在 struts.xml的<result>的name属性的值,进行匹配跳转到指定的
jsp或重定向到其他Action


7. 精确匹配和 模糊匹配的 区别
1. 精确匹配
struts.xml中  Action 配置 method属性  属性的值 是Action类中的某一个方法
前台访问时   Action名称.action
缺点: 配置繁琐  action类中的每一个方法 都需要  配置一个 <Action> 标签
优点: 分工明确  一个配置发生错误 不会影响其他 Action的运行
2. 模糊匹配
struts.xml中,Action配置name值时通过通配符*,配置请求的格式; 
class 和 method通过 {数字} 的方式 引用 name中通配符信息
前台访问时   按Action中定义的规则.action 去访问
缺点: 如果配置错误 所有的 Action 都不能使用
优点: 配置文件中  需要配置的 <action> 会变少  


8. struts2 简述
struts2 是一个MVC框架 基于WebWork 发展而来.属于控制层框架。
负责jsp页面和java代码之间的值的传递和跳转
核心控制器是FilterDispatcher 2.1.2 版本前含2.12 
从2.1.3版本开始用 StrutsPrepareAndExecuteFilter代替了。


9.Struts2中action要继承哪个类(ActionSupport)


10.Struts2 标签
1)迭代标签(<s:iterator>)
2)判断标签(<s:if>)
3)取值标签(<s:property>)
4)格式化日期标签(<s:date>)


hibernate
简介:Hibernate是orm的一个具体体现,它对jdbc进行了轻量级的封装,是连接面向对象编程与关系型数据库之间的桥梁,
        操作对象从而操作数据库,在项目中充当持久层,具有跨数据库的特性。
1.Mysql的默认端口号是(3306)

2.Mysql中的分页关键词是(limit)


4.Hibernate中表与表之间关联关系有
(一对一 one-to-one)、
(一对多 one-to-many)、
(多对多 many-to-many)


5.Hibernate中的五大核心类和接口
Configuration(类) :  
加载配置文件hibernate.cfg.xml文件中的配置信息,从而得到:
1).hibernate的底层信息:
数据库连接,jdbc驱动,方言(dialect),用户名 ,密码
2).hibernate的映射文件(*.hbm.xml)
SessionFactory(接口):
通过configuration创建的sessionFactory,
可以用来获得session    
sessionFactory是线程安全的,
里面保存了数据的配置信息和映射关系
Session(接口):
不是线程安全的,
相当于jdbc中connection,
我们可以使用session来操作数据库
Transaction(接口):
我们一般使用Transaction来进行事务的管理commit(提交)rollback(回滚)
Query(接口):
我们一般用来进行数据的查询操作


6.Hibernate中两种占位符是(?)和(:变量名)


7.Hibernate中query对象的常用方法
( executeUpdate() )方法对数据进行修改或者删除
( uniqueResult() )方法返回单条记录
( setFirstResult() )方法设置结果集开始位置
( setMaxResults() )方法设置每页条数
( list() ) 方法返回插叙结果集


8. Hibernate中session 对象的常用方法有
find();  返回list结果集
save();  添加
saveOrUpdate();  添加或修改  有id是修改 没id 是更新
delete(); 删除
update(); 修改
get(); 根据唯一标识获得 对象0
load();根据唯一标识获得 对象  延迟加载


9. get 和 load 的区别
1).load是延迟加载(懒加载,按需加载)调用load方法后不会立即发送SQL语句,
当访问实体属性的时候才会去发送SQL语句,如果访问的实体不存在,
则返回ObjectNotFoundException(对象不存在异常)
2).get是立即加载,当调用get方法后立即发送sql语句,
当访问的实体不存在的时候,则返回null
  注意:
load支持懒加载通过lazy=“true”设置,
如果lazy=“false”,则load不再进行懒加载
默认情况下lazy=“true”


10. hibernate配置文件设置方言的关键字(dialect)


11.Hibernate中两种事务类型分别是(jdbc事务)、(JTA事务)

12. 五个hibernate主键生成策略并分别描述
Increment(因扣梦特):先查询出最大id,在此基础上加1;hibernate框架会自动处理
Sequence(谁扣嗯次)(Orade) :oracle 数据库会自动处理
    Assigned(额赛特):人工指派(重复插入数据时会违反数据唯一性)
    native(内忒无)(数据库本地生成策略,适用多个数据库)
适用于mysql.oracle,sqlserver,
如果是orade数据库则默认使用的序列名为hibernate-sequence
    uuid:生成一个32位,不会重复的主键,可以达到真正的跨数据库
(通常来说对应的应该是string数据类型)


13. jdbc和hibernate的区别
hibernate是jdbc轻量级的封装,hibernate基于jdbc
jdbc
jdbc是纯手工的(sql语句,对于结果集的解析)
执行效率高于hibernate,
使用的sql语句,
jdbc是直接操作数据库中的表  select * from 表名
hibernate
hibernate是全自动的(将常用方法进行了封装,
不用手动进行结果集的解析)
hibernate是跨数据库的,
hibernate的开发效率高于jdbc,
hibernate使用的hql语句,
但是在最后操作数据库是hql语句会转化成sql语句去执行,
hibernate操作的是对象    from  类名 


14. hibernate的三种状态
transient['trænzɪənt](临时状态):
在创建对象即在new之后,在save之前的状态:
session中和数据库中都不存在该数据
persistent[pə'sɪst(ə)nt](持久化状态):
在save之后,session关闭之前,
session中和数据库中都存在对应的数据
detached[dɪ'tætʃt](托管状态/游离状态):
session关闭之后,session不存在,
数据中有对应的数据

15. hibernate 运行原理
通过configuration加载了hibernate.cfg.xml文件,
加载文件后得到sessionFactory,(sessionFactory是线程安全的) 
然后通过sessionFactory得到session(session是线程不安全的,相当于jdbc中connection)
通过session操作对象,来操作数据库,最后通过Transaction来进行事务的控制




Spring
1.spring概述
spring 就相当于一个粘合剂。
有两个核心,分别是IOC/DI(控制反转/依赖注入)
AOP(面向切面编程/面向方面编程)完全面向接口设计,
主要用来进行bean实例的创建注入(IOC/DI),
以及进行事务的管理(AOP)


2、spring中自动注入的两种方式分别是(byName)和(byType)


3、ioc的两种注入方式(属性注入)和(构造方法注入)


4、Spring中的容器是(ApplicationContext)和(BeanFactory)


5、spring中通过(scope)属性设置属性值为(singleton)来设置单例,
设置属性值为(prototype)来设置多例


6、bean注入时,引用数据类型通过(ref)属性或标签赋值


7、aop通过(read-only=true)配置只读事务


8. spring 控制事务的aop的切点应该控制在 (service)层 


9. spring 配置文件是(applicationContext.xml)

10.阐述事务四大特性
1).原子性
    原子性是指事物是一个不可分割的工作单位,
事务中的操作要么都不发生,要么都发生
2).一致性
    事务必须使数据库从一个一致性状态变换到另一个一致性状态(数据不被破环)
    3).隔离性
事务的隔离性是指一个事务的执行不能被其他事务干扰
4).持久性
    持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的




SSH 框架
1. SSH框架的搭建步骤
1):首先在web.xml中通过contextLoaderListener来融入spring
并加载sping相关配置文件
2):同样配置struts2前端总控制器filterDispatcher来过滤相关的请求
并加载struts.xml
3):action继承ActionSupport 然后引入struts-spring-plugin.jar包
并在配置文件中注入service 提供get set 方法
4):通过spring配置sessionFactory 读取hibernate.cfg.xml 数据库信息
5):dao层继承HibernateDaoSupport 在spring配置文件中dao注入sessionFactory


2. 文件上传注意事项
1) 表单中必须添加属性 enctype="multipart/form-data" 
2) action 中接收 文件的属性有两个
1: File 类型的 属性 接收文件实体
2: String类型的文件名 属性 接收 文件名信息
注意 :接收文件名的属性名称 是 接收File实体的属性名称+FileName ;
3) 数据库中存储的 是上传后的路径
4) 前台回显时 是哟虚拟路径+数据库存储的文件路径
原创粉丝点击