struts 部分
1.mvc 模式
mvc 是指 model、view、controller,即模型视图控制器。 模型(model)业务逻辑层,用于
封装业务逻辑和数据模型。视图(view)表示层,就是与用户实现交互的界面,通常实现数
据输入和输出功能。控制器(controller)控制层,起到控制整个业务流程的作用,实现 view
层和 model 层的协调工作。
2.值栈(value stack)struts 中将应用范围中的数据以及 action 处理的数据都存储在一个区域
中,在 struts 中叫值栈。
3.OGNL
全称是 Object Graph Navigation Language(对象图导航语言),她是一种强大的表达式语
言,让你通过简单一致的表达式语法来读取和设置 java 对象的属性值,调用对象的方法,
遍历整个对象的结构图,实现字段类型转换等功能。
OGNL 就是从“值栈”中取出数据,并在某些条件下进行数据过滤盒计算的表达式。
4.在 OGNL 中如果搜索的数据不是值栈中存储的数据,而是其他对象中,特别是 struts 中的
ActionContext 中,访问时,前面必须加#。
5.拦截器
拦截器定义:在 aop 中用于在某个方法或字段被访问之前,进行拦截然后再之前或之后加入
某些操作的 java 对象。
常用拦截器 1,exception 将异常和 action 中返回的 result 相映射;2,fileUpload 支持文件
上传功能的拦截器;3,i18n 支持国际化的拦截器。
定 义 拦 截 器 的 方 法 是 定 义 一 个 接 口 (interceptor ) 或 用 类 实 现 AbstractInterceptor 或 者
MethodFileInterceptor 方法。
6.自定义拦截器
通过接口 Interceptor 实现拦截器
public class ExampleInterceptor implements Interceptor{
public void init(){ //拦截器初始化方法
……..
}
public void destroy(){//拦截器销毁方法
….
}
public String intercept (ActionInvocation arg0) throws Exception{//拦截器拦截方法
…….
}}
继承 abstractInterceptor 类实现
public class ExampleInterceptor extends AbstractInterceptor{//继承 AbstractInterceptor 抽象类
public String interceptor (ActionInvocation arg0) throws Exception{//重写抽象拦截器的拦
截方法
…….
}
}
拦截器配置 struts.xml
//配置 example 拦截
此资料仅是对现有三份资料的整理,知识点并不是很全
新浪微博@小连棒棒糖 整理
器和对应的拦截器类路径
//拦截器栈配置定义
//缺省为 examplestack
//login 为在 jsp 页面上定义的 action 名
字,以及 action 类路径
/jsp/login.jsp //操作失败,跳转到 login。jsp 页面
/jsp/success.jsp
//设置名为 example 的拦截器
//配置缺省拦截器栈
7.struts 配置文件
//定义 Action 所在包包名 C01,扩展了
struts 自带的默认文件 Struts-default.xml 配置文件
//全局导航页面定义
/jsp/login.jsp
// 在 jsp
页面中定义的 Action 名字 login,以及映射的类文件路径
/jsp/login.jsp// action 返回标识 input,操作失
败,跳转到/jsp/login.jsp 页面
/jsp/success.jsp
//直接导航的的 Action 定义
/jsp/login.jsp
8.标签使用时最上方必加<%@ tablib prefix=”s” uri=”/struts-tags” %>
9.类型转换分类
1 int,boolean,double 等 java 基本类型转换 2 Date 类型转换 3 List 类型转换 4 Set 类型
转换 5 数组类型转换
struts2 中类型转换用拦截器来实现
由于网页输入的数据为字符串形式,后台则可能为多种形式,因此要进行转换。
此资料仅是对现有三份资料的整理,知识点并不是很全
新浪微博@小连棒棒糖 整理
10。输入校验有两种方式
1 、validate 以及 validateXXX 2、配置文件校验
validate 方法 :在每个 action 方法中继承 ActionSupport 类,并重写输入校验方法 validate。
validateXXX 中 xxx 为特定方法名,方法基本类似,执行注册方法如下所示
public String Register()throws Exception{}//执行注册方法
配置文件校验:
//表单中需要验证的字段名称
//需要验证的是字符串的长度
6//定义需要验证的最小长度为 6
8//定义需要验证的最大长度为 6
请输入长度为${minLength}到${maxLength}位的用户名//如果
不符合条件,返回此消息
习题:
1 Struts 2 的中央控制器是什么实现的(FilterDispatcher)。ppt 中给的答案没这一项,就选 filter
2,除了 jsp 之外,Struts 还支持哪种视图技术(freeMarker 和 velocity)。
3,Struts2 把应用范围的数据和 action 处理数据存放在一个区域中,被称为(valueStack,即
值栈)
4,action 配置中的 result 类型为 input 表示(操作失败)success 表示(操作成功)。
5,Struts 2 的 action 可以继承(ActionSupport) 类来实现,通过覆盖该类的方法可以实现
数据的输入验证。
6,自定义拦截器可以继承(AbstractInterceptor)类和(MethodFileInterceptor)类或者实现
(Interceptor)接口。
hibernate 部分
1,orm
orm 即 object/relactional mapping ,对象关系映射,是为了解决面向对象与关系数据库存在
的互不匹配的问题的技术。orm 是连接数据库和对象之间的桥梁,通过使用描述对象和数据
库之间映射的元数据,将 java 中对象自动持久化到关系数据库中,本质上是将一种数据从
一种形式转换到另一种形式。
2,hibernate 组成部分
Transient Objects、Persistent Object、application、SessionFactory、session、JDBC、JNDI、
JAT、Database
2,持久化
持久化是将程序数据在持久化状态和瞬时状态间转换的机制,持久化的主要应用是将内存中
的对象存储在关系型的数据库中,当然可以存储在磁盘文件、xml 数据文件中等等。
3,Hibernate 查询语言(hibernate QueryLanguage,hql):它是完全面向对象的查询语句,查
询功能非常强大,具备继承。多态和关联等特性
4,CRUD
是指在做计算机处理时的增加(Create)查询(retrieve)更新(update)和删除(delete)几
个单词的首字母的简写,任务是完成数据库的交流,包括很多常见的 sql 语句,主要被用在
描述软件系统中数据库或者持久化层的基本操作功能。
5,配置文件
此资料仅是对现有三份资料的整理,知识点并不是很全
新浪微博@小连棒棒糖 整理
6,hibernate 核心 api
hibernate 具有六个核心的接口或者是类
Configuration 接口,SessionFactory 接口,session 接口,query 接口,criteria 接口,transaction
接口。
session 是 hibernate 运作的中心,对象的生命周期,事务的管理,数据库的存取都与 session
息息相关。
7,hibernate 应用程序的开发步骤
1,创建 hibernate 的配置文件:hibernate.cfg.xml
2.创建持久化类:按照 javabean 风格编写的、带有构造器的 java 类。
3,创建对象-关系映射文件:持久化类名.hbm.xml.
4,通过 hibernate api 访问数据库,代码如下所示
1 创建 configuration 类的实例
Configuration config = new Configuration().configure();
2 利用 Configuration 实例构建 SessionFactory
SessionFactory sessionFactory = config.buildSessionFactory();
3 打开 session
Session session= sessionFactory.openSession();
4 开始一个事物
Transaction = session。beginTransaction();
5 调用 session 接口提供的方法完成数据库的操作
session.save(user);session.delete();session.update()
6 提交事物
ts.commit();
7 关闭 session();
session。close();
习题
1,下面对 hibernate 描述不正确的是()
a 提供 crud 的 api
b 提供基于类的查询语言
c ORM 实现了类到类的映射 d 实现事物控制
2,orm 的组成
1 一个对持久类对象进行 crud 操作的 api
2 一个语言或 api 用来规定与类和属性相关的查询
3 一个规定 mapping metadata 的工具
4 一种技术可以让 orm 的实现同事物对象一起进行 dirty checking 。lazy association
fetching 以及其他优化操作
spring 部分
1,ioc
就是 Inversion of control ,控制反转。是一个重要的面向对象编程的法则来削减计算机程序的
耦合问题,只描述程序中对象的被创建方式,但不显式的创建对象。
2,aop
aop 是 aspect Oriented Programming 的缩写,意为:面向切面编程(也叫面向方面),可以通
此资料仅是对现有三份资料的整理,知识点并不是很全
新浪微博@小连棒棒糖 整理
过预编译的方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能
的一种技术。
3,依赖注入
di Dependence Injection 依赖注入也称控制反转,概念主要内容为:只描述程序中对象的被
创建方式,但不实现的创建对象(依赖注入是控制反转的实现方法
4,ioc 容器是 spring 的核心容器,ioc 就是由容器来控制业务对象之间的依赖关系,本质是
控制权由应用代码转移到了外部容器。
5,为什么要提供 spring 框架
a 面向系统设计者:达到松耦合的系统设计目的
b 面向系统实现着:简化 javaee 平台中的应用实现技术
6,di 类型分别有 接口注入 构造注入 设置注入 自定义类型注入
7,集合类型注入有 List 注入,Set 注入,数组集合注入,map 集合注入
8,spring 组成结构
Spring APO 、Spring ORM、Spring Web、Spring DAO、Spring context、Spring mvc 、spring
core
9.配置文件 applicationContext。xml
//对应的类的路径
Frank //具体的 bean 中的属性值。
10.为什么提供 spring 框架
spring 是 pojo 编程,pojo 编程使得可持续构建和可测试能力的提高
依赖注入和 ioc 使得 jdbc 操作简单化
Spring 是开源的免费的
spring 使得对象管理集中化和简单化
11 持久化 持久化是将程序数据在持久状态和瞬时状态间转换的机制,持久化的主要应用是
将内存中的对象存储在关系型数据库中,当然也可以存储在磁盘文件中,xml 文件中
此资料仅是对现有三份资料的整理,知识点并不是很全
新浪微博@小连棒棒糖 整理