搜档网
当前位置:搜档网 › SSH框架教程

SSH框架教程

SSH框架教程
SSH框架教程

SSH框架的学习

一,Struts 2

1 为什么要学习Struts框架?

1>Struts框架的好处:简化开发工作量,提高开发效率;采用了优秀的MVC

思想

2>如何学习:先掌握框架的使用,在了解内涵

2 MVC模式在javaWeb中的应用

1>MVC思想是根据组件职责不同,将系统分为三部分组成

--M(Model) 负责业务处理

--V(View) 负责与用户交互

--C(Controller) 负责协调试图部分和模型部分协同工作

2> 为什么使用MVC:易于扩展和升级

3 Struts框架的处理流程

浏览器发出struts请求—>请求进入struts控制器—>struts控制器解析XML配置文件—>控制器根据不同请求,调用不同的Action—>Action 调用DAO处理请求返回结果—>控制器根据结果调用试图组件,响应给用户

4 Struts 历史

Struts框架分为Struts1和Struts2 两者没有必然联系,Struts2 是以WebWork 框架核心(Xwork)为基础构建起来的

5 Struts 基本使用

1>引入核心开发包五个:

commons-logging-1.0.4.jar ( 主要用于日志处理)

struts2-spring-plugin-2.0.14.jar ( struts2整合spring需要的包)

2>在web.xml 中配置struts控制器

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExcuteFilter

3>根据要求编写Action 和JSP Action要继承ActionSupport

4>在struts.xml定义Action和请求对应关系

6 struts.xml 基本配置可以放在src下面

1> 根元素里面包含多个元素

2> 主要是为了将Action分组定义name用于指定包名;extends一

般指定struts-default(在struts-default.xml中定义),里面包括struts2运行所需的必要组件

3>

4> 一个可以包括多个 主要用于试图响应

5>下面一个例子:

7 为列表添加分页功能例如每页2个

page =1;

pageSize=2;

int begin=(page-1)*pageSize+1;

int end=page*pageSize;

eg: select * from ( select rownum rn , c.* form COST c ) where rn between 1 and 6;

8 利用Struts2标签+OGNL技术

1>OGNL: (Object-Graph Navigation Language)对象图导航语言,主要用于访问对

象的数据和方法。

2>OGNL主要由三部分组成

--OGNL引擎:负责解析OGNL表达式,定位数据;

--Root根存储区:负责存储要访问的目标对象;

--Context变量存储区(Map 类型) 负责存放多个要访问的目标对象;

3> OGNL 基本语法:

A,访问Root区域对象基本语法:

--访问简单数据:属性—> “name”;

--访问数组和List集合:属性[index] —> “list[2]”;

--访问Map集合:属性.Key —> “map.sex”;

--访问方法:属性.方法( ) —> “list.size( )”;

--创建List对象:”{ element1, element2}”;

--创建Map对象:”#{key1 : value1 , key2 : value2}”;

--创建对象: “ new 包名.构造方法” —> “ new int( totalPages )”

B,访问Context区域对象基本语法:

采用”#key”即可

4> OGNL技术在Struts上面的应用

在Struts中有一个ValueStack( )值栈数据对象,该对象存储了请求相关的所有的数据信息。例如request session application action等,struts采用OGNL 工具对ValueStack进行操作。

--- xwork对OGNL进行了部分改造:

答:将Root存储区改造成一个栈结构(CompoundRoot),当利用”属性”表

达式访问时。优先对栈顶对象查找,没有再去次栈顶查找,以此类推5>Struts标签的使用

利用Struts2标签显示数据,需要为标签指定OGNL表达式,标签利用表达式定位ValueStack中的数据,进行相应的操作

--- : 显示valueStack状态

Eg:

--- : 循环集合元素

Eg: 分页中用到了;

注:value :指定循环集合或数组

var:指定循环变量,会被存放到ValueStack的Context中。

status:指定循环状态变量,会被存放到ValueStack的Context中,该

变量有count属性表示循环了多少个元素(1开始),index表示当前循

环元素的索引(0开始)。

--- if…else…标签判断分支: test指定ognl判断表达式Eg:暂停

开通

--- 显示数据标签value指定ognl表达式

Eg:

--- 将数据date格式化输出

Eg: 9 Action组件的相关使用

1> Action 组件的原理

客户发出action请求给struts控制器—> struts控制器会创建ValueStack对象—>struts控制器根据请求创建Action对象,并将Action压入ValueStack 的root栈顶(线程安全,不用考虑并发问题)—>struts控制器将请求相关的Request,Session对象放入到ValueStack的Context区域—>struts控制器执行Action对象的execute方法处理请求—>struts控制器根据execute结果生成响应信息输出—>请求处理完毕,销毁ValueStack和Action对象。

2>Action属性注入

配置中,为Action对象的属性指定初始值,使用格式如下

属性值

注意:type类型如果你想再见跳转的页面需要Action的数据的话要用dispatcher,如果用redirect时候,将所有的数据删除了,jsp页面中

也不能获取到应有的值了。

10 Result组件的相关使用

1> 作用:负责生成响应试图内容。

Struts2框架提供了多种不同的Result组件类型,用于做不同形式响应,例如json数据响应,流数据响应,jsp页面响应等。

2> Result组件相关配置---声明定义

3> Result组件相关配置---使用定义

4> 掌握经常使用的Result组件

--Jsp试图

--dispatcher:以转发方式调用Jsp页面

--redirect:以重定向方式调用Jsp页面

Jsp页面

--Action试图

--chain:以转发方式调用下一个Action

--redirectAction:以重定向方式调用下一个Action

相同命名空间的调用:请求名跨命名空间的调用:

请求名

/命名空间名

5> JSON Result组件

主要负责Action的属性以JSON字符串格式输出,JSON Result的使用步骤:---引入struts2-json-plugin.jar。

---将元素的extends继承”json-default”;

---使用配置

---只返回Action中一个属性:

属性名

---返回Action中多个属性:

属性名1,属性名2,属性名3

---返回Action中的所以属性值

11 拦截器组件

Struts2组件提供了大量的拦截器组件,如果不能满足开发者需求,可以自行定义,一般利用拦截器封装一些通用性的功能,例如请求参数给action赋值,文件上传,权限检查等;

1> 拦截器的作用:

拦截器可以在Action 和Result组件调用之前执行,也可以在其之后执行。

2> 拦截器的原理:

---所有的拦截器组件实现类都必须实现接口Interceptor此接口必须实现三个方法init ,destory,intercept。或者抽象类AbstractInterceptor此

抽象类只需要实现intercept即可,

ai.invoke()拦截器如果只有一个拦截器执行完这个方法后,会返回给试图,如果多个拦截器,它只有执行完所有的拦截器,才会返回给试图

3> 所有拦截器都具有下列注册配置

也可以在使用拦截器的时候给它设置参数,就在下面用

12 Struts表单标签

界面封装了界面显示逻辑,用于简化JSP ,以后需要时候再进行查找标签库例如:

二,Hibernate

1 Hibernate框架作用,

1> 优点:

----Hibernate框架主要用于对数据库的操作,使用该框架可以简化数据操作代码,这样程序员可以将更多经历放在业务编写上。

----免费开源。

----完全面向对象。

2> 缺点:

----性能比较差,尤其是批处理方面,大数据量开发的时候,最好使用JDBC ----HQL的功能相对薄弱

3> 本质:对JDBC技术的封装。

4> 原有JDBC技术的缺点:

----需要编写大量复杂的SQL语句。

----需要做大量的对象和记录的转换。

----数据库移植时,需要修改SQL语句。

例如:分页语句,不同数据库写法不同

5> Hibernate 设计原理

---- Hibernate框架是一款ORM工具,基于ORM设计思想开发出来的

---- ORM: 对象关系映射。

Mapping映射

Object :对象------Relation关系

对象:Java中Entity实体类。

关系:关系型数据库。

思想:将程序中的对象与关系型数据库中的数据自动映射转化。

-----这样在查询时候,可以自动将记录封装成对象返回。在更新和插入时候,可以将对象自动写入数据表中,像中间得SQL+JDBC的操作一样,完全

封装在工具的底层。基于这种思想的框架还有Hibernate Ibatis 等

2 Hibernate主要结构

1> Hibernate 主要包括以下几个部分构成。

---- java实体类( n 个):用于封装数据表记录的Java对象类型。

例如:Person.java。

----实体类名.hbm.xml( n 个):映射描述文件,里面定义了实体类与数据库之间的对应关系。

例如:Person.hbm.xml。

---- hibernate.cfg.xml ( 1 个):主配置文件,里面主要定义链接数据库的参数。

---- Hibernate 主要API :在使用时候,需要使用Hibernate提供的API ,他们将SQL+JDBC封装起来了

2> hibernate开发需要导入的jar包

----Hibernate3.jar 和hibernate-core-3.3.1.GA.jar (hibernate核心jar包)

----antlr.jar (Another Tool for Lanuage Recognition可构造语言识别器,将HQL解析为SQL的需要)

----commons-collections.jar (包含了一些Apache开发的集合类,功能比

java.util.*强大)

----dom4j.jar (越来越多的java软件都在使用dom4j来操作xml,Hibernate也不例外)

----javassist.jar (代码生成工具,Hibernate用它在运行时扩展java类实现,同cglib包)

----jta.jar (标准的java事务处理接口)

----cglib (cglib字节码解释器)

----slf4-api.jar和slf4j-log4j12.jar (hibernate使用的日志系统)

----asm.jar (ASM字节码库,如果使用”cglib”则必要)

----asm-attrs.jar (ASM字节码库,如果使用”cglib”则必要)

----ehcache.jar (EHCache缓存,如果想使用时候加入)

----log4j.jar (必须加入的)

3>hibernate常用的API

----Configuration:加载hibernate核心的配置文件hibernate.cfg.xml

----SessionFactory:hibernate中重量级对象(重量级:消耗资源最多,功能最强

大的对象),主要是用于创建创建Hibernate中Session对象

控制对数据库的链接,建议一个项目中,最好只有一个

SessionFactory,利用单例模式即可;

-----Session:hibernate中所有的增删改查操作都是依赖session对象实现其功能的,代表java程序与数据库的一次链接,是最常用的工具对象。

-----Transaction 事务提交:对表的改变必须依赖程序员开启事务,并且提交

事务

4>Hibernate使用步骤

----创建工程,引入hibernate的jar包。

----在src下追加hibernate.cfg.xml主配置。

----根据数据表创建实体类Entity。

----编辑实体类和数据库表的映射文件hbm.xml。

----利用Hibernate API实现增删改查操作。

如果想自动生成表则需要以下代码:

//代表控制台输出的sql语句,我们能看到。

3 Hibernate 映射类型

在***.hbm.xml中,描述属性和字段之间映射的时候,可以使用type属性指定映射类型

1>Hibernate映射类型主要有:

---整数类型:byte,short,integer,long。

---浮点数类型:float,double。

---字符串类型:string。

---事件日期类型:date,time,timestamp。

---boolean类型:yes_no (将true/false转换成Y/N),

true_false (将true/false转换成T/F)。

---其他:big_decimal,big_integer,clob,blob。

4主键的生成策略

1>在***.hbm.xml中,可以主键指定生成方式。

----uuid:每次插入新的数据时候,hibernate自动生成不重复的32位字符串,hibernate独有的。

----sequence:采用指定序列生成,适用于Oracle这样需要使用序列自增的DB。

用oracle创建序列:

----identity:采用数据库自增长机制,适用于mysql和sqlserver数据库。

----native:根据方言自动选择identity或者sequence生成方式。

----increment:首先获取最大主键值将其+1,在执行插入操作,适用各种DB。----assigned:忽略主键生成,需要程序员自己指定主键值。

2> 中配置方法:

5 Hibernate框架的基本特性

1>一级缓存(Session级别的,默认开启):每次创建一个Session时会为这个session

对象提供一个缓冲区,用于缓存Session查询出来的单个对象,当使用Session 再次查询同一个对象时候,就从缓存里面直接查出,避免对数据库进行二次查询,从而提高效率。

2>一级缓存区管理办法:evict()---驱逐,clear()—清理等方法,

flush()将session缓存中的数据跟数据库同步。

6 Hibernate对象的持久性

Hibernate是一个持久层框架,实体对象可以具有下面三种状态:

----临时态:采用new方式构建的对象,执行完毕后被垃圾回收掉。

session.save()可将临时态变为持久态;

----持久态:

1> 采用Session对象查询出来的,受到了Session对象所管理的对象,

例如:调用load,get,save,update方法之后的对象,

2> 处于持久态的对象特点:

---对象变为持久态对象之后,在调用对象的set方法后,当事务提交

https://www.sodocs.net/doc/5610970279.html,mit()/执行session.flush()方法时,对象的数据状态可以

更新到数据库。

---对象不能被垃圾回收器回收。

---对象存储在一级缓存里面,由Session负责管理。

----托管态/游离态:脱离Session管理的对象,

例如:用到了session.evict()/session.clear();

session.update()可将游离态变为持久态。

注意:我们用saveOrUpdate()方法代替save()和update()。

7 Hibernate的延迟加载

Hibernate提供一些方法,利用这些方法所返回的对象,并没有立刻发生sql 语句加载数据库中的数据,而是在调用对象的getter方法时候才触发数据库的查询,加载数据记录。例如session.load()就是延迟加载的一个方法。

-----使用延迟加载方法时需要注意:

要避免出现LazyInitializationException:could not initialize proxy – not Session 原因是关闭过早了。

-----解析get()和load()的区别:

1>相同点:都是根据主键Id当条件查询某个对象。

2>不同点:---load()是采用延迟加载机制,

get采用立即加载机制。

---load()没有符合的记录会抛出异常ObjectNotFoundException,

get()会返回null,而不会抛出异常。

---load()返回的是动态生成一个类型(动态代理),

get()则返回是实体类型。

8 Hibernate 延迟加载实现原理--------cglib动态代理。

---Hibernate采用了cglib.jar和asm.jar两个开发包,实现了动态新类和动态编译成class,这是hibernate内部临时生成一个暂时替代的查找对象。

9 update()方法

1> 先查询出要修改的对象,再调用update()方法

好处:稳定,不出现空值。

2> 直接创建对象,添加id,修改属性

坏处:容易出现空值。

10 Hibernate 关系映射的作用

1> 一对多关系映射(单向):

(例如:一个部门有多个员工)由一的一端来维护关联关系,外键字段由一

的一端创建,多的一端不维护关联关系。

----需求:由一方对象查询n方记录,可以采取一对多的关系映射。

----首先在一方实体实体类中添加集合属性Set。

----然后在一方的***.hbm.xml中定义一对多关系映射的描述。

----使用时,通过一方对象的关系属性,获取n方数据

----语法:

2>多对一关系映射(双向):

(例如:多个员工可以查询他们同属一个公司的信息)

-----需求:由多方对象查询一方对象的信息。

-----在多方实体类中添加属性,该属性为一方类型

(例如:private Dept dept 其中Dept是一方的class类)。

-----在多方的***.hbm.xml中,添加属性描述信息。

column=” 关联条件的外键字段”

class=” 一的一端的类名路径”/>

-----使用时,通过多方对象的关联属性获取相关一方的记录信息。

11关联操作

1>关联查询:

----默认情况下,关联属性的加载采用了延迟加载机制,当调用getter方法时候才发出查询,在使用时候,如果需要将关联属性和主对象一起

加载,

----可以通过以下方法改变加载机制:【Hibernate中的抓取策略】在***.hbm.xml中为该属性添加lazy = “false”;关联属性数据在主对

象加载时候加载为该属性追加fetch=”加载方式”,指定关联属性加

载方式(select[默认] join subselect为fetch的加载方式)。

注:当在 中加入fetch=”select”会发出两条sql语句,一条是Emp的基本属性,第二条是查询与之关联的Dept的属性

当加入fetch=”join”只发出一条sql语句,使用链接查询。

2>级联添加:

----对主对象做添加操作时,关联属性的数据也做相应的添加操作

●需要在***.hbm.xml的关联属性定义中添加cascade属性,属性值可

以是none[默认],all[级联删除和级联添加],delete[级联删除],

save-update[级联添加更新]。

●在执行session.save()之前,将关联数据对象添加到主对象的关联属

性中去。

3>级联删除:

----对主对象做删除操作时候,关联属性的数据也做相应的删除操作。

●需要在***.hbm.xml中的关联属性开启级联删除操作。

●在执行session.delete(obj)操作时候,删除的obj是利用session查询

出来的,不要用new方式,因为其不具有关联数据。

●级联删除采用的是n+1个delete清除数据,因此关联数据对象n过

多时候,不推荐使用,而是采取HQL语句进行删除。

4>inverse属性:

----可以控制关系字段值维护的操作由哪一方负责,默认情况下由双方负责。

----使用一对多时,一般都会加上inverse=”true”。

----一般在一方关联的集合中inverse使用true,意识要一方放弃关系维护操作,当程序对一方的对象做级联操作时,不再会出现update维护关系字

段的语句。

12 如何利用Myeclipse根据数据库生成实体类和映射描述文件。

1>新建一个web Project工程。

2> DB Browser(Myeclipse database explorer)中建立一个与数据库的链接。

3>为工程添加Hibernate开发框架(导入包,添加主配置及其参数设置)

选中工程右键—>Myeclipse—>Add Hibernate Capabilities。

4>在Add Hibernate Capabilities里面添加Hibernate框架开发包,添加主配置

文件,设置链接参数,在里面创建一个HibernateSessionFactory工具类,(---此步骤就是生成了hibernate.cfg.xml 和HibernateSessionFactory)。

5>进入DB Browser,

选中要操作的数据表右键—>Hibernate Reverse Engineering—>根据向导页面生成实体类和***.hbm.xml 。

注:向导页面1: 选择存放实体类和***.hbm.xml的工程和package,选择你

要生成的文件,可自动生成hbm.xml,pojo,dao。

向导页面2: 将Type Mapping 选中为Hibernate Types ,id的自动生成

选择为native。

向导页面3: Finish—>No。

13多对多关系映射:例如:

(一个公司中刘,李等多个人可以具有多个头衔,返回来多个头衔可以对多个人) 1>多对多关系的数据库中是由三张表构成的,其中一张表,专门用来维护

关联关系的。

2>例如:职位—>职位ID 员工ID <—员工如果需要职位查找员工,可以建立

多对多的关系映射。

3> 可以在职位中追加一个集合属性,里面存储多个员工。(单向)

在职位和员工中各家一个Set集合属性。(双向)

注:多对多双向关联映射的文件中的表名和列名必须一致。

14 一对一主键单向关联映射

两张表中的主键相同,例如:姓名和身份证号都代表同一个人。也就是一张表的主键是参照另一张表的主键而建的;

Eg:Card中的主键依靠Person中的主键而建立的

Test:

15 一对一双向关联,

----只需要在Person.java中加入private Card card;

----Person.hbm.xml中加入即可,这样在查询时候就

可以从任意一方能查询出另外一方。

16 Hibernate查询

1>Hibernate Query Language:HQL与SQL 结构相似,SQL语句是面向数据表

和字段进行查询的,而HQL是一种面向对象的查询语言。

2>HQL和SQL的共同点:

----都支持:select,from,where,order by,having,group by等。

----都支持运算符表达式:+ ,-,*,/,<,>等。

----都支持:in,not in,between and,like等过滤条件关键字。

----都支持分组函数:max,min,sum,avg,count。

3>HQL和SQL的不同点:

----HQL是大小写敏感的,类名属性名严格区分大小写。

----HQL不支持select * 写法。

----HQL不支持join…on…中的on子句,只可以用join(….inner join….等)。

----HQL不支持表名字段名。

4>HQL 的案例:

----查询对象中所有的内容:

----查询对象,用别名查询(同上面具有相同结果):

----查询部分字段用new时候一定要:

给Emp中加上带参构造器。

返回List

返回List ----带查询条件的HQL

----带?的查询条件用setParameter(第n个问号[0开始],内容)

----in(?,?,?.....)关键字

----in(:字段)如果字段很多的话可以用setParameterList(“:字段”,new Object[]{})

----between ? and ? 同理。

----SQL语句要用到createSQLQuery(sql)。

----inner join:只返回两表中联结字段相等的行。

----left join:返回包括左表中的所有记录和右表中联结字段相等的行。

----right join:返回包括右表中的所有记录和左表中联结字段相等的行。

----分页查询的用法:setFirstResult(num) 从num+1开始的数

setMaxResult(num) 到num+1结束的数

例如查询从id在4-7的内容:

----count(*) 用uniqueResult()返回Long型的数

String hql = select count(*) from Dept;

long count = (Long)session.createQuery(hql).uniqueResult();

-----delete from Dept d where d.id=7; update同理。

17 缓存详细解答:

1> 什么是缓存:缓存是数据库的数据在内存中的临时容器,它包含了库表数

据在内存中的临时拷贝,位于数据库和访问层之间。

2> Hibernate读取数据的顺序:先缓存,如果缓存中不存在,在发送SQL语句。

3> 数据缓存策略

----事务级缓存:当前事务范围内的数据缓存。

----应用级缓存:某个应用中的数据缓存。

4> 一级缓存:是事务级缓存,也叫session级缓存,一级缓存的数据结构是

Map,用于存储查询实体,Map.key存储的是实体的id,Map.value

存储的是实体本身,所以一级缓存无法存储查询的属性,一级

缓存属于内置的,每次建立session时候自动开启缓存。它的生

命周期与session有关,是从session的创建到销毁为一个生命

周。

5> 二级缓存:

-----是sessionFactory级缓存,二级缓存可以被所有的session共享二级缓存的生命周期与sessionFactory的生命周期一致,可以利sessionFactory的

evict()等方法管理该缓存。

-----什么情况下可以考虑一下二级缓存:

----该对象被多个不同用户频繁使用。

----该对象更新操作不频繁。

-----提案二级缓存的方法:

A,添加ehcache.jar开发包和加入ehcache.xml配置到src下。

B,在hibernate.cfg.xml中开启二级缓存,指定供应商,

C,需要缓存那个对象,就在hibernate.cfg.xml中添加配置。

-----二级缓存只能缓存实体对象,不缓存属性。get(),load(),iterate()方法读写,而list()方法只写不读二级缓存,

-----我们可以通过SessionFactory的evict()方法清除二级缓存中一个或一类对象,来达到禁止写二级缓存的效果。

例如:sessionFactory.evict(Dept.class,1)删除一个对象。

sessionFactory.evict(Dept.class)删除一类对象。

18二级缓存的案例

1> 测试list()方法的只写不读。

结果:两次发送的结果相同;

2> 测试iterate() 可以读写。

结果:只发出一条查询id的sql语句,第一次使用list(),把对象放到二级缓存中,第二次使用iterate()先发出查询id的sql语句,然后根据

Id在二级缓存中查找

3> iterate() 和list()如果对属性查询,控制台出现的查询结果一样;

list();

iterate();

结果:一样,因为二级缓存只能存储对象,不能存储属性,所以还需要发送SQL语句,到数据库中查找

4> load() 和get() 都可以读取二级缓存。

结果:

只查询一次,数据存储在SessionFactroy级了

5> 二级缓存的管理

结果:直查询两次

当用sessionFactory.evict(Dept.class)时候,结果:两次相同。

当用sessionFactory.evict(Dept.class,n)时候,结果:发出三条查询语句。

19查询缓存

1>由于一,二级缓存只能缓存单个对象,查询缓存可以缓存一个select结果,

它的生命周期是当关联表发生改变的时候,则生命周期结束。

2>查询缓存的使用:

---要对查询目标对象开启二级缓存。

---在Hibernate.cfg.xml中开启查询缓存设置。

---在执行query.list()之前,必须手动调用query.setCacheable(true);

3>在使用关联映射的时候,关系属性数据默认不参与缓存,即使访问对象在

缓存中存在,当访问该对象的关联属性时候还得去数据库中查询,如果需要缓存关联属性数据,需要在hibernte.cfg.xml中的设置一下。

4>适用情况:

----当不同用户执行相同的sql语句时候可以使用。

----查询结果集不发生改变的时候。

5> list()读写查询缓存,iterate()不读查询缓存。

list()

-----------------------------------------------------------------------------------------------

iterate()

6> 二级缓存和查询缓存一起使用效果更佳。

结果:

----二级缓存和查询缓存都开启时:

第一次使用list(),开启了二级缓存,将对象Dept放入二级缓存中,之后

开启了查询缓存,把Dept的id和其他属性都放入查询缓存中,第二次用到list()查询相同的Dept对象时候他先去查询缓存,拿着Dept对象的Id,根据id,去二级缓存中查出对象,没有发出SQL语句。

20 悲观锁和乐观锁

当出现多个用户同时执行更新操作时候,会出现事务交叉更新操作的冲突,会破坏业务中的数据的完整性,这时候可以使用乐观和悲观锁机制。

----悲观锁:使用极少,使用数据库底层机制实现的,在操作的整个过程中,只要事务不释放(commit()/rollback()),则任何用户都不能查看和修

改,并发性太差。

----乐观锁:采用数据版本控制(version)的方式,一般在数据库中加入一个

version字段。当查询数据时候,该字段也同时查询出来,修改该

数据时候,version会自动加1,在修改数据时候,只有用户的版本

号高于该数据的版本号,才可以正常修改

----使用步骤:

1>首先在po实体类中添加version字段并且get(),set()方法。

2>在***.hbm.xml中class里面加入元素属性。并且

之后紧跟着元素,

----配置文件:

21 Hibernate中的Criteria[标准] 英[kra??t??r??]----QBC (Query By Criteria)

---Hibernate设计了CriteriaSpecification作为Criteria的父接口,下面提供了

Criteria和DetachedCriteria的用法。

1> Criteria和DetachedCriteria主要区别在于创建形式不同,

SSH框架搭建

1、创建web应用 2、添加spring支持,选择需要的类库,并选择“JAR Libraries Installation”中第二个选项:Copy checked Library contents to project folder (TLDs always copied),将类库保存到项目的lib目录下。 3、添加Hibernate支持:

4、下一步:选择“Spring Configuration file(applicationContext.xml)“ 5、下一步:选择“Existing Spring configuration file”在SessionFactory Id 中填入sessionFactory. 6、下一步:如图填写

7、添加Hibernate实体及其映射文件 8、对Dao类中的方法抽取接口并将接口和实现分包放置, 9、建立biz接口和bizImpl实现类,实现类中添加Dao接口的引用,并添加get/set方法, 10、在具体业务方法中调用Dao的方法实现业务逻辑。 11、在applicationContext.xml中配置bizImpl实现类

SSH框架搭建实例教程,课程设计

. SSH的理解及其应用实践

1.SSH是什么 (3) 2 Spring 介绍理解: (3) 2.1简单介绍 (3) 2.2各种特性 (3) 2.2.1轻量 (3) 2.2.2控制反转 (4) 2.2.3面向切面 (4) 2 .2.4容器 (4) 2.2.5框架 (4) 2.3总结 (4) 3.Hibernate介绍理解: (4) 3.1简单介绍 (4) 3.2核心接口 (5) .3.2.1 Session接口 (5) 3.2.2 .SessionFactory接口 (5) 3.2.3.Configuration接口 (5) 3.2.4.Transaction接口 (5) 3.2.5 Query和Criteria接口 (5) 4. Struts (6) 4.1什么是Struts框架 (6) 4.2 Struts 概览 (6) 4.2.1Client browser(客户浏览器) (6) 4.4 Struts中的Controller(控制器)命令设计模式的实现 (7) 4.5 在Struts框架中控制器组件的三个构成部分 (7) 4.7 Struts中的Model(模型) (8) 5.SSH整合步骤 (8) 5.1安装所需软件环境: (8) 5.1.1、首先安装JDK,配置Java环境变量 (8) 5.1.2安装MyEelipse (8) 5.1.3 数据库 (9) 5.1.4、 (9) 5.2环境配置好了就可以做SSH整合的项目 (9) 6.搭建框架并简单应用 (11) 6.1准备工作 (11) 6.2(建立项目,包结构,导入所需jar文件) (12) 6.3撰写资源文件 (15) 6.4在https://www.sodocs.net/doc/5610970279.html,m 包下添加下列文件 (19) 6.5添加hibernate DAO 模板 (20) 6.6以上的工作还不够,我们还需要进行WEB方面的配置 (20) 7.测试: (23)

图解SSH框架配置步骤

图解SSH框架配置步骤 核心提示:现在开发的一个项目使用S2SH框架,配置环境用了一两天,现在把当时配置环境时写的文档整理下发出来,也算加强点记忆。 1 开发环境 MyEclipse5.5 JDK 1.6 Java EE 5.0 Tomcat6.0 Struts2.1.6 Spring2.5.6 Hibernate3.3.1 2 为 ssh 做好准备 2.1 下载包 Struts2 现在开发的一个项目使用S2SH框架,配置环境用了一两天,现在把当时配置环境时写的文档整理下发出来,也算加强点记忆。 1 开发环境 MyEclipse5.5 JDK 1.6 Java EE 5.0 Tomcat6.0 Struts2.1.6 Spring2.5.6 Hibernate3.3.1 2 为ssh做好准备 2.1下载包 Struts2.1.6包下载: https://www.sodocs.net/doc/5610970279.html,/download.cgi#struts216 Full Distribution: o struts-2.1.6-all.zip (110mb) [PGP] [MD5] Hibernate3.3包下载: https://https://www.sodocs.net/doc/5610970279.html,/6.html Spring2.5下载: https://www.sodocs.net/doc/5610970279.html,/download

2.2搭建开发环境 打开MyEclipse,新建一个web project,如图: 注意:J2ee版本设为java ee 5.0

点击Finish完成,建好的工程如图: 如果你的myeclipse还没有配置一个web服务器,那就进行下面的步骤,这里以tomcat6为例:

SSH三大框架整合(详细版)

1:构建WEB项目 2:构建数据库 3:加入依赖包 尽量不要依赖IDE,通过自己手动加包完成 访问数据库需要的包:mysql的驱动包 Hibernate的包:hibernate3.jar 核心包 依赖的必须包:antlr-2.7.6.jar 用于解析成HQL语句的包 commons-collections-3.1.jar apache提供的包,提供对集合框架的增强 dom4j-1.6.1.jar 解析XML文件的包 javassist-3.9.0.GA.jar 动态修改字节码需要用到的包 jta-1.1.jar 用于JTA事务的包 slf4j-api-1.5.8.jar 日志接口包---》依赖一定的实现包 slf4j-log4j12-1.5.0.jar log4j.jar 另外一种实现包:slf4j-simple-1.5.10.jar 可选的包:c3p0-0.9.1.jar 用于创建C3P0连接池的包 ehcache-1.2.3.jar :用于缓存实现的包 cglib-2.2.jar 动态修改字节码的包 Spring的包:spring.jar 核心包 aopalliance.jar 使用Aop功能可以用到的包 aspectjrt.jar aspectjweaver.jar 使用ASPECTJ表达式需要用到的包 如果是使用DBCP连接池的话,需要两个jar包 commons-dbcp.jar commons-pool.jar 如果需要用到commons增加包的话,可以加入以下包 commons-beanutils.jar commons-lang.jar commons-logging.jar Struts2的包:commons-fileupload-1.2.1.jar commons-io-1.3.2.jar freemarker-2.3.13.jar :在Struts2 中默认使用的是FreeMarker模板引擎 ognl-2.6.11.jar :Struts2中使用OGNL表达式 struts2-core-2.1.6.jar 核心包 xwork-2.1.2.jar 核心包 struts2-spring-plugin-2.1.6.jar Struts2跟Spring整合需要的插件包 4:构建项目分包结构 5:放置配置文件 6:创建POJO和相对应的hbm.xml 7:修改空白的Hibernate.cfg..xml并创建表结构 8:创建DAO,SERVICE,ACTION 9:修改配置文件

SSH框架说明文档

一、SSH整体介绍 1. 简介 本Demo程序采用的是SSH(Struts+Spring+Hibernate)三层架构。 (1)Struts用于表现层,负责页面数据提取,页面动作响应。 (2)Spring是一种轻量级的框架模型,主要负责业务逻辑层的对象创建,表现层的Action 的创建,以及持久层的DAO的创建。 (3)Hibernate负责把内存中的数据对象保存到数据库中。 2. 框架集成说明 在SSH三层架构中,主要用Struts来实现对页面的响应及页面跳转。当用户向服务器发送某一个请求,这个请求会被服务器(Tomcat)接收到,服务器会根据请求的内容,将这个请求发送给相应的Servlet实例进行处理。Servlet会根据其内容,去生成相应的Action实例。本程序中,Struts将Action的创建工作交给了Spring的代理类来完成,创建这个实例后,将这个实例注入,由Struts调用Action中的相应方法。Action中可以配置一个或多个Service对象,Action调用Service中的方法进行业务处理。Service中通常会有一个或多个DAO的对象,DAO 继承了Hibernate的接口,用来处理数据库的操作。而Action,Service,DAO的创建与注入,都是由Spring的Bean工厂来实现的。 (1)Struts与Spring的集成 ?在Web.xml中配置Struts的配置文件 ?在Web.xml中配置Spring的配置文件,Bean工厂及过滤器 ?在Struts配置文件中集成Spring的代理类 ?在Spring配置文件中配置Action (2)Spring与Hibernate的集成 ?在Web.xml中配置Hibernate延迟过滤器配置 ?在Web.xml中配置Spring的配置文件,Bean工厂及过滤器 ?在Spring配置文件中配置DAO ?在Hibernate配置文件中配置数据库信息 ?在DAO的实现类中继承HibernateDaoSupport类 3. 程序的包结构 (1)表现层的类包 ,分别用来存放表现层的Form与Action。(2)持久层的类包 此文件夹下放置模型类,以及对应的Hibernate配置文件。

SSH框架搭建

Myeclipse10下搭建SSH框架(图解)Struts2.1 下载LOFTER客户端 一、建立一个Web Project ①点击File→New→Web Project 新建一个Web工程。 ②在Project Name中输入项目名ssh,在J2EE Specification Level中选择Java

EE 6.0,然后点击Finish。 二、搭建Spring3.0 ①左边显示的是生成以后的Web Project 目录结构。 选择工程名(ssh),然后添加Spring。MyEclipse→Project Capabilities→Add Spring Capabilities

②Spring version选择Spring 3.0 按图选择相应的包Spring 3.0 AOP,Spring 3.0 Core,Spring 3.0 Persistence Core,Spring 3.0 Persistence JDBC,Spring 3.0 Web;JAR Library Installation 里选择Copy到lib目录(避免发布到Tomcat出问题)。

③生成applicationContext.xml文件,Folder中选择WebRoot/WEB-INF,然后点击Finish。

三、搭建Hibernate3.3 ①左边显示的是生成Spring以后的目录结构(文件夹上面会有个S)。 选择工程名(ssh),然后添加Hibernate。MyEclipse→Project Capabilities→Add Hibernate Capabilities ②Hibernate Specification选择Hibernate 3.3 按图选择相应的包Hibernate 3.3 Annotations & Entity Manager,Hibernate 3.3 Core;JAR Library Installation里选择Copy到lib目录(避免发布到Tomcat出问题)。

ssh框架搭建教程

第一步,创建WEB工程,添加struts支持第二步,分包 第三步,添加spring支持

第四步,添加spring配置文件 第五步,在web.xml文件中配置初始化读取参数(spring的配置文件) contextConfigLocation /WEB-INF/applicationContext.xml 第六步,配置spring监听器 org.springframework.web.context.ContextLoaderL istener 第七步,在struts-config.xml文件中配置请求处理器,将struts请求委托给spring代理,达到控制反转的目的

第八步,添加hibernate支持

第九步,配置好hibernate以后,在applicationContext.xml文件中会自动生成“数据源”,“sessionFactory”,代码如下:

SSH框架教程

SSH框架的学习 一,Struts 2 1 为什么要学习Struts框架? 1>Struts框架的好处:简化开发工作量,提高开发效率;采用了优秀的MVC 思想 2>如何学习:先掌握框架的使用,在了解内涵 2 MVC模式在javaWeb中的应用 1>MVC思想是根据组件职责不同,将系统分为三部分组成 --M(Model) 负责业务处理 --V(View) 负责与用户交互 --C(Controller) 负责协调试图部分和模型部分协同工作 2> 为什么使用MVC:易于扩展和升级 3 Struts框架的处理流程 浏览器发出struts请求—>请求进入struts控制器—>struts控制器解析XML配置文件—>控制器根据不同请求,调用不同的Action—>Action 调用DAO处理请求返回结果—>控制器根据结果调用试图组件,响应给用户 4 Struts 历史 Struts框架分为Struts1和Struts2 两者没有必然联系,Struts2 是以WebWork 框架核心(Xwork)为基础构建起来的 5 Struts 基本使用 1>引入核心开发包五个: commons-logging-1.0.4.jar ( 主要用于日志处理) struts2-spring-plugin-2.0.14.jar ( struts2整合spring需要的包) 2>在web.xml 中配置struts控制器 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExcuteFilter

3>根据要求编写Action 和JSP Action要继承ActionSupport 4>在struts.xml定义Action和请求对应关系 6 struts.xml 基本配置可以放在src下面 1> 根元素里面包含多个元素 2> 主要是为了将Action分组定义name用于指定包名;extends一 般指定struts-default(在struts-default.xml中定义),里面包括struts2运行所需的必要组件 3> 4> 一个可以包括多个 主要用于试图响应 5>下面一个例子: 7 为列表添加分页功能例如每页2个 page =1; pageSize=2; int begin=(page-1)*pageSize+1; int end=page*pageSize; eg: select * from ( select rownum rn , c.* form COST c ) where rn between 1 and 6;

Ubuntu搭建SSH_WEB环境

一、Ubuntu搭建SSH的WEB环境所需软件: 1、ubuntu-9.10-server-i386.iso; 2、jdk-6u7-linux-i586.bin; 3、apache-tomcat-6.0.18.tar.gz。 二、安装Ubuntu: 具体步骤参考【Ubuntu9.04server.pdf】,安装是注意以下两个地方: 1、如下图所示,选择【Hong kong】; 2、如下图所示,选择【LAMP server】和【OpenSSH server】。 三、安装JDK: 注意:安装完Ubuntu之后先不要使用apt-get去更新任何东西; 1、将作者提供的【jdk-6u7-linux-i586.bin】传到服务器上;我们可以使用PSFTP传。 (1)、open 服务器地址; (2)、输入用户名和密码; (3)、进入你想要上传的目录,作者是在/root/upload底下。cd /root/upload (4)、put path\jdk-6u7-linux-i586.bin。

2、安装JDK: (1)、# chmod +x jdk-6u7-linux-i586.bin; (2)、# ./ jdk-6u7-linux-i586.bin;说明:安装JDK (3)、# mv jdk-6u7-linux-i586.bin /usr/local/ 说明:移动位置 (4)、# cd /usr/local/ 说明:切换目录 (5)、# mv jdk-6u7-linux-i586.bin jdk1.6 说明:文件夹改名 3、配置环境变量: (1)、# cp /etc/profile /etc/profile_back 说明:备份profile文件 (2)、# vi /etc/profile 说明:用vi打开profile文件 (3)、在末尾追加【注意此处是用“冒号”隔开而不是用“分号”】 #Java environm export JA V A_HOME=/usr/local/jdk1.6 export CLASSPATH=.:$JA V A_HOME/jre/lib:$JA V A_HOME/lib:$JA V A_HOME/lib/tools .jar (4)、输入【:wq】保存退出。 4、# source /etc/profile 说明:使配置生效 5、执行# java –version 命令,显示: java version "1.6.0_07" Java(TM) SE Runtime Environment (build 1.6.0_07-b06) Java HotSpot(TM) Server VM (build 10.0-b23, mixed mode) 如果显示信息如上,恭喜代表你的JDK安装成功! 四、安装Tomcat: 1、put path\apache-tomcat-6.0.18.tar.gz 说明:具体操作同【第三步第一点】 2、# 将文件移动到【/usr/local/】下 3、# tar zxvf apache-tomcat-6.0.18.tar.gz 4、# mv /usr/local/apache-tomcat-6.0.18 tomcat6 说明:文件夹改名 5、# /usr/local/tomcat6/bin/startup.sh 说明:启动Tomcat 配置到此结束,如无异常已成功配置好了WEB环境; 五、

ssh框架搭建教程

ssh框架搭建教程 SSH 在J2EE项目中表示了3种框架,既Spring + Struts +Hibernate 第一步,创建WEB工程,添加struts支持 第二步,分包 第三步,添加spring支持 第四步,添加spring配置文件 第五步,在web.xml文件中配置初始化读取参数(spring的配置文件) contextConfigLocation /WEB-INF/applicationContext.xml 第六步,配置spring监听器 第七步,在struts-config.xml文件中配置请求处理器,将struts请求委托给spring代理,达到控制反转的目的 第八步,添加hibernate支持 第九步,配置好hibernate以后,在applicationContext.xml文件中会自动生成“数据源”,“sessionFactory”,代码如下:

SSH框架整合详解(精典)

已经经过本人测试 第一步:准备工作 MyEclipse 6.0------T omcat6.0 所需jar文件:(所有jar文件已整理ssh_jars文件夹)注意:ssh_test项目中采用的是MySql 数据库。而本文档中配置的是Oracle数据库,注意其中配置的不同之处哦(在相应的地方有注明) 第二步:(建立项目,包结构,导入所需jar文件) 新建一个web project:

建立包结构如下: 各包功能说明: com.ssh.config : 配置文件(*.properties),如数据库配置信息com.ssh.resource : 资源文件 https://www.sodocs.net/doc/5610970279.html,m : 公共工具(util)包

com.ssh.util.orm.hibernate : hibernate DAO 模板com.ssh.model : 各实体类文件 com.ssh.service : 业务逻辑包相当于biz com.ssh..test : 测试包 com.ssh.action : struts Action 包结构可以根据自己需要自行划分 导入jar文件: 新建一个User Library: sshJars 添加jar文件:

将新建的User Library: sshJars加入到项目中: 第三步:撰写资源文件 jdbc.properties 在jdbc.properties 里写上连接数据库的配置信息,此文件的配置信息用于在spring的配置文件中使用,数据库的配置信息也可以写到Spring 的配置文件中,这在一个jdbc.properties文件中是为了方便更改. 在com.ssh.resource包中新建下列文件:

ssh框架搭建

第一步,创建WEB工程,添加struts支持 第二步,分包 contextConfigLocation /WEB-INF/applicationContext.xml org.springframework.web.context.ContextLoaderListener jdbc:microsoft:sqlserver://localhost:1433;databaseName=zhuche 第三步,添加spring支持

需要再添加一个Spring 1.2 Persistence JDBC libraries dao 不然错误class "https://www.sodocs.net/doc/5610970279.html,mons.dbcp.BasicDataSource" not found 其实有一种最简单的办法,我刚发现的,不用下载,也不用重新建工程,加载那个包,直接 在项目上右击build path—>configure build path..—>add library..—>MyEclipse Libraries选中Spring 1.2 Persistence JDBC libraries,同时可能会用到所以系统自动选上了,点击finish就可以了!!! 第四步,添加spring配置文件

第五步,在web.xml文件中配置初始化读取参数(spring的配置文件) contextConfigLocation /WEB-INF/applicationContext.xml 第六步,配置spring监听器 org.springframework.web.context.ContextLoaderListener 第七步,在struts-config.xml文件中配置请求处理器,将struts请求委托给spring代理,达到控制反转的目的 第八步,添加hibernate支持

最详细的ssh框架整合讲解

最详细的ssh框架整合讲解

基于Myeclipse6.5的SSH框架整合 Mx25184 2012-08-14

1、文章目的 最近整合SSH框架,期间遇到很多问题,中途几次熬夜查找,精神几度崩溃,心想如此好的框架为啥搭建整合的时候确实如此费劲,在网上找了很多解决方案,均不能解决问题。为了以后让想学SSH的人少走点弯路,故此次将整个完整搭建步骤写出来,供大家分享,希望对大家有所帮助。 2、运行环境 1、jdk-6u1-windows-i586-p 2、MyEclipse_6.5.0GA_E3.3.2_Installer_A 3、apache-tomcat-6.0.13.exe 4、mysql-essential-5.1.53-win32 5、数据库脚本程序 create database SSH; create table user( id int(11) not null auto_increment, username varchar(50) default null, password varchar(50) default null, primary key(id) );

insert into user values('1','admin','admin');

具体环境搭建基本上就是下载安装,继续流程就不在详细说明了,一般网上都可以查到。 3、创建项目工程 再打开的Myeclipse中,新建Web project,项目名字我们起名 Myssh ,J2EE Sqecification Level选择Java EE5.0,然后点击Finish即可。

eclipse搭建SSH框架详解

SSH框架是最常用的框架之一,在搭建SSH框架的时候总有人遇到这样,那样的问题。下面我介绍一下SSH框架搭建的全过程。 第一步:准备工作。 下载好eclipse,Struts2,Spring,Hibernate。 1.eclipse:eclipse下载的时候建议下载JavaEE版的eclipse。 当然你也可以下载eclipse-SDK。(下载eclipse-SDK需要下载Web,Tomcat等plugins) 2.Struts2:https://www.sodocs.net/doc/5610970279.html,/download 1)引入Struts的jar包。下载struts-*-all.zip 解压后,struts/lib目录下是struts所有的相关jar包。 其中有5个是必须的: Commons-logging-1.0.4.jar,Freemarker-2.3.13.jar, Ognl-2.6.11.jar,Struts2-core-2.1.6.jar,Xwork-2.1.2.jar 其余jar包并不是struts必须的。还有3个包也要注意导入。不导入运行Tomcat时候可能会出现异常。 commons-io-1.3.2.jar,commons-fileupload-1.2.1.jar,javassist-3.7.ga.jar 注意:javassist-3.7.ga.jar包是在struts2-blank-2.2.1.war示例工程中的web-inf/lib下的。 3.Spring:https://www.sodocs.net/doc/5610970279.html,/download/community 还可以在eclipse下安装下载。具体步骤是这样的: 1)打开eclipse-help-Software Updates. 2) 在打开的对话框中选择上面的第二项(Available Software)。 3)点击Add Site按钮,弹出URL对话框。 4)在对话框里输入:https://www.sodocs.net/doc/5610970279.html,/updatesite/点击OK。 5)选择sping IDE点击安装(Install)。 4.Hibernate:https://www.sodocs.net/doc/5610970279.html,/projects/hibernate/files/hibernate3/

搭建SSH2框架详细步骤、SSH2框架整合的步骤和原理

搭建SSH2框架详细步骤、SSH2框架整合的步骤和原理SSH2框架整合的详细步骤如下: 1、新建一个web工程,并且设置其编码形式为utf-8 2、所有的jsp页面设置成utf-8 3、建立三个Source foloder:src、config、test 1)src 存放源代码 2)config目录下新建三个package spring 存放spring的配置文件 struts2 存放struts的配置文件 hibernate 存放hibernate的配置文件 3)test 存放测试类 4、准备相应的jar包 Lib目录下添加文件夹,在对应的文件夹中放入相应的包 db hibernate junit spring struts2 jstl 5、准备jsp页面要存放的位置

WEB-INF/jsp post user 6、准备dao和daoImpl,以及service 和serviceImpl 7、在test中新建测试类,测试声明式事务处理是否正确 8、准备action 9、配置web.xml 10、配置struts.xml 11、配置OpenSessionInView模式 它是通过延长session的时间来保证的 在懒加载的时候需要用到 因为session的一级缓存保存在session中,如果延长session的关闭就意味着一级缓存中的数据会停留在内存中,这样内存开销会比较大 SSH2整合的原理: 启动tomcat,系统会自动加载读取web.xml org.springframework.web.context.ContextLoaderListener 当tomcat启动的时候,上面的监听器就开始运行了,就会启动spring容器,就会加载配置文件,纳入spring管理的bean就会生成对象 对象包括:action,do,service,代理对象 在struts.xml中有如下配置:

简单MyEclipse搭建SSH框架登录实例

SSH实例开发使用说明 1. 实例简介 (1) 2. 开发所需基础 (1) 3. 开发平台 (1) 4. 开发环境配置 (2) 5. 程序源码使用说明 (2) 6. 详细开发步骤 (3) 1. 实例简介 本实例是一个简单的基于SSH框架的web登录实例。读者可在学会此实例基础上进行扩展,增加功能。 2. 开发所需基础 a)熟悉java语言 b)了解jsp页面,如表单等 c)熟悉数据库,这里是MySql d)了解一个基本的网站运行环境、业务流程 e)了解Struts、Hibernate、Spring 3. 开发平台 f)开发语言:java (本项目安装的是jdk 1.6 版本)+ jsp g)服务器:apache-tomcat-6.0.26 h)数据库:MySql 5.1 i)开发工具:MyEclipse 10.0

4. 开发环境配置 a)安装jdk,配置path、classpath b)安装或拷贝 tomcat包,配置JAVA_HOME、CATALINA_HOME c)安装MyEclipse或Eclipse,配置指定Tomcat路径 d)安装MySql,配置用户名、密码(实例中,用户名:root,密 码为空)等 5. 程序源码使用说明 e)打开MySql,导入testssh.sql数据库 f)打开MyEclipse,导入LearnSSH源码 g)部署“deploy”项目(通过MyEclipse会部署到tomcat目录下 的webapps目录下)。 h)启动“Tomcat” i)通过浏览器访问项目:http://localhost:8080/LearnSSH,登录用户名 为:admin,密码:123。

ssh框架整合步骤讲解

基于MyEclipse6.5的SSH整合 hespermoon 2008-7-18

1.编写目的 最近在学习Struts1.2+Spring2.5+Hibernate3.2整合,这期间出现了很多问题,在网上找了若干的实例均有不同程度的问题,为了让想要学习这个整合的人少走弯路,特写下这篇文章,希望对大家有所帮助,如果有很么问题可以与我联系,Email:zhaohuawei@https://www.sodocs.net/doc/5610970279.html,。 2.实验环境 ●MyEclipse6.5 ●Tomcat5.5.26 ●MySQL5.0 ●数据库脚本程序 CREATE TABLE user ( id int(11) NOT NULL auto_increment, username varchar(50) default NULL, password varchar(50) default NULL, PRIMARY KEY (id) ); INSERT INTO user VALUES ('1', 'admin', 'admin'); 环境的搭建这里就不写了,估计大家应该很熟悉,不会的可以上网看一下,有很多这样的资料。 3.G o!让我们开始创建工程 打开MyEclipse,需要注意的是这里应该处于MyEclipse Java Enterprise视图;新建一个Web Project,输入适当的工程名字,这里我们输入ssh,Finish即可。

确定之后MyEclipse会生成名为SSH的项目,其中生成的目录结构如下所示:

4.添加Struts1.2框架支持 在ssh工程上面右击,在弹出的菜单中选择MyEclipse -> Add Struts Capabilities…,添加Struts的支持。 在弹出的对话框中选择Struts 1.2,修改Base package for new classes成所需的包名,其余保持原状,Finish即可

Eclipse下SSH2框架搭建 详细

一、Struts2和Spring整合,创建一个OA工程 1、整合struts2 1)导入strut2的jar 包:commons-logging-1.0.4.jar,freemarker-2.3.8.jar,ognl-2.6.11.jar,struts2-core-2.0.12.jar,xwork-2. 06.jar。暂时导入这些jar包,到时候需要再倒入。 2)将struts.xml文件放置在OA工程的src目录下。 3)在web.xml里面配置struts2用到的核心过滤器。 Xml代码 struts2 org.apache.struts2.dispatcher.FilterDispatcher struts2 /* 2、整合spring 1)导入spring的jar包:spring.jar 2)将applicationContext.xml文件放置在OA工程的WEB-INF目录下。 3)在web.xml里面配置spring用到的监听器。 Xml代码 org.springframework.web.context.ContextLoaderListener 4)添加struts2-spring整合的插件:struts2-spring-plugin-2.0.12.jar,如果不使用这个插件,则需要在struts.xml里面配置: Xml代码 3、测试struts2和spring整合对不对? 写一个jsp页面login.jsp来测试:

SSH框架整合开发实例(1)——整合开发系统的搭建

SSH框架整合开发(1)——整合开发系统的搭建 新闻发布系统开发详细步骤 第一部分:数据库及框架搭建 一、新建数据库,新建表,设置好主键、外键等关联 二、新建一个Web工程,使用JavaEE5.0,添加struts框架进去 1、复制struts所需要的jar包进入工程 -0 2、创建struts.xml配置文件(从blank示例工程中进行) 3、在web.xml中加入启动struts的过滤器 struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAn dExecuteFilter

struts2 /* 4、创建整个工程的包目录 三、为工程添加spring框架(注意:不要把所有的spring的包都复制进去,因此,在添加框架的时候,不要选择复制jar文件) 1、选中工程,右键——add Spring ….. 2、选择创建一个新的applicationContext.xml配置文件:

3、复制Spring的基本包进入工程: (1) spring-framework-2.5.5-with-dependencies\spring-framework-2.5.5\d ist\spring.jar (2) spring-framework-2.5.5-with-dependencies\spring-framework-2.5.5\l ib\ jakarta-commons\commons-logging.jar 4、复制AspectJ和Annotation所需要用到的包: 2)复制aspectj下面的两个包 spring-framework-2.5.5\lib\aspectj\ aspectjrt.jar spring-framework-2.5.5\lib\aspectj\ aspectjweaver.jar 5、复制Spring的struts插件包进去:(在struts2和spring结合的时候,必须使用这个包,后面有讲到,在后面添加也可以) struts-2.3.1.2\lib\struts2-spring-plugin-2.3.1.2.jar 四、为工程添加Hibernate框架

相关主题