系列七:整合Struts+Spring+HibernatePPT教学课件
最新struts学习课件PPT课件
一、Struts应用简介
(6)、Action的execute()方法返回一个 ActionForward对象,ActionServlet再把客 户请求转发给ActionForward对象指向的jsp 组件。 (7)、ActionForward对象指向的jsp组件生 成动态网页,返回给客户。
二、struts配置
二、struts配置
2、ActionServlet的初始化参数 <servlet> <servlet-name>action</servlet-name> <servlet-class>….</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> </servlet>
Hibernate总结PPT教学课件
1、即时加载 lazy=“false”; 2、延迟加载 lazy=“ture”; 特点:在需要使用时对数据进行加载,节约资源
HQL联表查询中fetch的使用 本地SQL查询
1、在实体映射文件中编写
2、在项目中进行调用
2020/12/11
9
第5章:Criteria查询
Hibernate学习总结
2020/12/11
1
第1章: Hibernate入门
数据持久化ORM 在项目中使用Hibernate
2020/12/11
2
数据持久化ORM
ORM(Object Relationship Mapping)
内存
Hibernate 项目
ORM
数据库
2020/12/11
3
2020/12/11
6
第3章: HQL实用技术
使用HQL语句的步骤:
1、得到Session 2、编写HQL语句 3、创建Query对象 4、执行查询
HQL中占位符的使用
1、使用‘?’占位符 为占位符设值 eq: query. setType(index,value); index从0开始 2、命名参数占位符 “:”后面必须为实体类的属性 设置值: QueryProperities qp = new QueryProperities();
Criteria查询
原理:根据实体类的类型进行查询 Criteria查询时条件设置:使用add()方法 1、 使用Restriction
Restriction. le(“实体类对象属性”,值) //小于 Restriction. ge(“实体类对象属性”,值) //大于 2、使用Example(将对象中不为空的属性作为条件) 将条件封装到实体对象,在使用该对象查询 Example. create(实体类对象);
Struts+Hibernate+Spring整合
Struts+Hibernate+Spring整合<1>在eclipes中,新建一个Web项目:<2>添加Spring支持,也就是导入Spring1.2的所有jar包步骤:工程右键--->选择MyEclipes--->Add Spring Capabilities--->进行添加Spring支持选择Spring1,导入Spring1.2所有jar包,把导入的jar包放在/WebRoot/WEB-INF/lib目录下,之后点击下一步,在此我们不改变Spring核心配置文件名称,依然叫applicationContext.xml 之后我们点击Finish完成,此时添加Spring支持完成<3>此时添加Spring支持完成,接下来在工程中创建两个包,名称分别为:(1)org.totti.hibernate:用于存放HibernateSessionFactory类的,利用HibernateSessionFactory可以获取到Sessin对象以及对Sesson进行管理,从而可以通过Session对数据持久化进行操作(2)org.totti.bean:1.此包中用于存放Hibernate通过表产生的映射文件*.hbm.xml2.存放与表产生映射关系的POJO类3.存放Hibernate中DAO框架的实现类,此类中封装着许多写好的对数据操作的方法在此我们配置数据库连接:<4>添加Hibernate支持,,进行对Hibernate和Spring的整合步骤:工程右键--->选择MyEclipes--->Add Hibernate Capabilities--->进行添加Hibernate 支持<5>★在添加Hibernate支持时,我们要导入Hibernate3.1的所有jar包,以及Hibernate3.1的DAO框架,还有与Spring整合的Spring1.2jar,把jar包放在/WebRoot/WEB-INF/lib目录下之后我们点击下一步(Next)<6>★在这一步中我们要注意了,在此我们要选择生成Hibernate中主配置文件的方式,在这里我们选择利用Spring配置文件生成Hibernate的主配置文件(hibernate.cfg.xml)之后我们点击下一步(Next)<7>★在这里我们选择已有的Spring配置文件(也就是一开始我们添加的Spring支持),我们根据他生成Hibernate支持,这样就对Spring和Hibernate进行了整合,在次我们要为我们创建的SessionFactory起一个名字,在这里我们叫做:sessionfactory,此sessionfactory的生成,会在Spring主配置文件中配置,利用IoC依赖注入进行创建之后我们点击下一步(Next)<8>★在这里我们主要是配置数据源,也就是数据库连接,首先要为Bean Id起一个名字,我们叫做datasource,之后我们选择我们之前配置好的数据库连接之后我们点击下一步(Next)<9>在这里我们选择创建SessionFactory类,且把它放在org.totti.hibernate包下,此类主要是用于管理session的创建销毁以及事务处理的<10>★之后我们点击Finish完成,此时会弹出一个提示框,问你是否加载新的jar包,在此我们点击Keep Existing(保持原有),这是因为在Hibernate中包括的一些jar包,Spring 中也存在,在这里我们就不需要再次导入新了jar包了,因此选择Keep Existing<11>此时我们打开Spring的配置文件--applicationContext.xml文件,在其中已经加入了Hibernate的配置,例如:SessionFactory的创建,数据库连接的创建此时Spring和Hibernate整合完毕<12>对数据库中的表进行映射--->产生映射文件*.hbm.xml、产生映射的POJO类以及对应表映射之后的DAO框架在此我们要切换视图,切换到:MyEclipse Database Explorer在这里我们要选择:1.我们映射的工程以及映射类放在那个目录下2.创建*.hbm.xml文件,以及对Hibernate配置文件进行修改(把映射后信息进行添加)3.之后我们产生表的映射类(他是一个POJO类),在此我们不生成他的抽象类4.我们选择添加DAO框架,利用Spring DAO实现,在此Spring配置文件中回为我们配置Hibernate中DAO框架的信息(DAO框架只在Hibernate3之后才存在)之后我们点击下一步(Next)在这里我们要选择数据库表的主键的生成形式,在这里为子增长类型在添加完主键生成形式之后,我们点击下一步(Next)在此我们不需要做任何选择,因为此时我们只有一张表,并没有主外键关系以及一对多或一多一等映射关系(单向关联,双向关联),所以我们直接点击完成(Finish)此时数据库中表的映射就完成了,生成了对应表的的映射文件,映射类以及DAO框架此时我们Hibernate对数据库表的映射完成了<13>之后我们添加Struts支持步骤:工程右键--->选择MyEclipes--->Add Struts Capabilities--->进行添加Struts支持在这里我们选择Struts1.2,且把配置文件以及对应资源文件放入org.totti.struts包下此时添加Struts支持完成(所需要的Struts Jar包全部导入程序中)<14>之后在Struts配置文件(struts-config.xml)建立"三合一"所谓"三合一"就是创建jsp页面以及对应的action和actionform<15>在建立"三合一"之后,我们此时做一个添加用户的操作,因此我们要建立一个Jsp页面,,页面上含有两个struts控件分别是:userName和userPassword,我们生成此JSP 页面之后点击下一步(Next)在此页面中我们不许要修改任何东西,直接点击完成即可(Finish)此时"三合一"配置完成<16>之后我们再创建两个JSP页面,分别为success.jsp(成功页面)和error.jsp(失败页面)我们在addUser对应action中进行业务处理,添加用户成功,则根据success跳转到success.jsp页面,如果用户添加失败,则根据原error跳转到error.jsp页面<17>我们打开添加用户的addUsers(action),进行业务逻辑的处理//执行添加用户操作,根据DAO框架实例化对象调用其save方法实现usersDAO.save(users);returnStr="success";}catch(Exception e){e.printStackTrace();}//根据操作结果进行跳转页面return mapping.findForward(returnStr);}}如图所示,这就是我们在action中进行的业务处理<18>接下来我们修改struts-config.xml文件(Struts配置文件)此时进行Struts和Spring的整合★我们把type中对应的action所在的包.类名复制到Spring配置文件中,1.此时我们要在Spring配置文件中创建一个<bean>标签,把Struts中<action标记的>type中的值复制到Spring中<bean标记中>class中,2.之后把Spring中<bean标记>所对应的name属性中的值为Struts配置文件中<action标记>中path属性中的值3.在Spring中创建的<bean>标记中添加属性,其中属性名称为之前action类中我们设置的属性UsersDAO,而我们注入这个属性的值是通过引用DAO框架在配置文件中创建的值<!--创建Hibernate中DAO框架的实例化对向--><bean id="UsersDAO"class="ersDAO"> <property name="sessionFactory"><ref bean="sessionfactory"/></property></bean><!--创建对应actin对象,其中name中的值为用户请求Strust配置文件中path所对应的值其中属性为usersDAO,此属性在action类中有,他是通过引用之前创建的DAO框架对象之后通过setter注入到action属性中取得--><bean name="/addUser"class="org.totti.struts.action.AddUserAction"> <property name="usersDAO"><ref bean="UsersDAO"/></property></bean><19>★之后把Struts配置文件type中的值改为:org.springframework.web.struts.DelegatingActionProxy(固定值)<forward name="success"path="/success.jsp"/><forward name="error"path="/error.jsp"/></action></action-mappings><message-resourcesparameter="org.totti.struts.ApplicationResources"/><!--配置plug-in插件,使得在服务器加载时就进行了对Spring配置文件的解析,把所有类创建好了以及注入--><!--其中className为固定值表示在初始化时加载这个插件property也为固定值,标识在上下文初始化时对此文件进行加载value表示Spring配置文件所在路径,对其进行加载解析--><plug-inclassName="org.springframework.web.struts.ContextLoaderPlugIn"><set-property property="contextConfigLocation"value="/WEB-INF/applicationContext.xml"/> </plug-in></struts-config><21>★最后我们把Spring的配置文件放入/WebRoot/WEB-INF目录下即可之前忘记操作数据库连接的操作了,在此不上<22>此时Struts与Spring整合完成也就意味着我们Struts+Hibernate+Spring整合完成在这里我们说一下SSH整合后程序执行的过程:<1>在服务器启动之后,Spring配置文件(applicationContext.xml)已经被加载解析到容器之后了,也就是我此时所有IoC注入已经完成,Spring配置文件能在服务器启动时就进行初始化是因为我们在Sturts配置文件中设置了Plug-in插件,此插件可以使Spring配置文件在服务器启动初始化<2>当用户发送请求,例如添加用户操作,此时由于表单提交过来的请求名称为*.do此时回被ActionServlet(Struts核心控制器接管),他会到struts-config.xml (Struts主配置文件)配置文件中去查找对应用户请求的path,找到之后也就找到了对应的action标记,之后根据action标记中的attribute属性去执行formbean(struts标记)的填充之后调用type中指定的action,但是此时由于我们已经交给Spring进行代理执行了,此时调用type中指定包.类名的话,回查找到Spring配置文件<3>在后在Spring配置文件中执行,此时我们并不知道要执行那一个<bean>标记中,以及执行那个action,这是就要通过bean标记中name属性进行指定,name属性中的值和Struts中action标记中path属性中的值是相同的,这也就意味着用户发送请求会根据请求路径在Spring中找到对应<bean>标记,之后找到对应要执行的action,且在此<bean>标记中要进行属性的setter注入<4>在根据Spring找到action类之后,对action类进行操作(控制层),在此进行数据封装之后,会去调用相应模型层进行业务逻辑操作,在业务逻辑操作的过程中我们会进行Hibernate 持久化操作,进行持久层操作,持久层操作完之后返回给模型层,之后返回给控制层,控制层根据返回的结果进行相应的页面跳转,返回给用户。
第6章Struts2Hibernate和Spring整合应用课堂精简-PPT精品
<generator class="assigned" />
</id>
<property name="xm" type="ng.String">
<column name="XM" length="50" />
</property>
<property name="xb" type="ng.Byte">
图6.8 与SQL Server的连接
29
6.4 实现Hibernate持久层
₪ Dlb.java文件
private Integer id; private String xh; private String kl; ……
₪ Dlb对应映射文件Dlb.hbm.xml :
……
<hibernate-mapping>
查找功能,需要三个表,即XSB表、KCB表、CJB表。 ₪ 其中XSB表中含有该学生所属专业的ID,且作为外键,
故还应该有一个ZYB表。 ₪ 在登录学生成绩管理系统时,如果没有登录成功,就回
到登录界面,登录成功后方可进行各种操作,所以还要 有个DLB表。
9
第6章 Struts 2、Hibernate和 Spring整合应用
<column name="XB" />
</property>
…….ernate和Spring整合应用
₪ 6.1 项目创建及功能描述 ₪ 6.2 层次划分 ₪ 6.3 添加Spring开发 ₪ 6.4 实现Hibernate持久层 ₪ 6.5 实现DAO ₪ 6.6 实现业务逻辑层 ₪ 6.7 实现Web层
原创Struts+Spring+hibernate框架整合步骤(多图)
Struts框架应用步骤第1步:向web应用程序添加struts框架的功能注意:必须要选中项目的根节点第2步:创建一个普通的类,一般都归放在web层的包中。
第3步:在类中定义前台页用户输入的数据项,并为这些数据项提供get/set方法第4步:再定义一个处理业务请求的方法,该方法返回String类型第5步:将这个定义了数据项和业务处理方法的类,在struts.xml中注册第6步:编写前台JSP页面,并导入Struts标签库,并且把form的action属性填写上面配置的action的name值Spring框架应用步骤第1步:选中根节点,选spring框架,如下图第2步:在web.xml文件中加上以下代码<listener><listener-class>org.springframework.web.context.ContextLoaderL istener</listener-class></listener>第3步:在spring的配置文件applicationContext.xml中注册各层的对象注意:每层的对象注册时,如果该对象还有属性依赖别的对象,应该为这个属性生成get/set 方法第4步:在struts配置文件加上以下代码,用以交出对象的控制权<constant name="struts.objectFactory"v alue="spring"></constant><include file="struts-default.xml"></include>第5步:修改struts的action的class属性,使之与spring中的对象id属性值对应第6步:将applicationContext.xml复制到WEB-INF目录下,就可以部署启动了。
第4章SpringStrutsHibernate(理论)精品PPT课件
SSH的层次结构
中间层采用流行的Spring+Hibernate
为了将控制层与业务逻辑层分离,可以进行细分
➢ Web层 ➢ Service层 ➢ DAO层 ➢ PO
Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及 PO无缝整合
1.2 SSH的优点
一个良好的框架可以让开发人员减轻重新建立解决复杂问题方案的负担 和精力;它可以被扩展以进行内部的定制化;并且有来自用户社区的强 大支持
</context-param> <listener> <listener-class>
org.springframework.web.context.ContextLoaderListener </listener-class> </listener>
配置文件 用“,”分隔
Web服务的启动过程
多个配置文件通过classpath加载
<<sseerrvvlelet-t-cnlaasmse>>oargc.taiopna<c/hsee.rsvtlreutt-sn.aamcteio>n.ActionServlet</servlet-class>
<<insiet-rpvalerta-cmla>ss>org.apache.struts.action.ActionServlet</servlet-class>
<<inpiat-rpaamra-nma>me>config</param-name>
<<ppaarraamm--vnaalumee>>config</param-name>
《SSH轻量级框架实践》第十一章 Spring与Struts、Hibernate的集成 PPT课件
Spring与Struts1集成
在Struts配置文件中配置插件
在struts-config.xml中,需要把Spring配置文件的位置告知插件。classpath:applicationContext.xml表示到 classpath下去找applicationContext.xml文件。如果Spring配置文件放在/WEB-INF/下,可以这样配置: value="/WEB-INF/applicationContext.xml"。如果有多个Spring配置文件,可以用逗号隔开,同时配置多个路径, 如:value="/WEB-INF/applicationContext.xml,/WEB-INF/action.xml"。
更为简洁、易懂。
声明式事务
key表示匹配方法的“模式”,可以使用“*”通配符,例如,“add*”表示这条属性应用于add 开头的方法。属性的值为PROPAGATION_REQUIRED,表示当前方法必须运行在一个事 务环境中。如果一个现有事务正在运行中,该方法将运行在这个事务中,否则,就要开 始一个新的事务。可选的值如下:
总结
Spring为Hibernate开发提供了良好的支持,可以大大简化Hiberante的编码。 在Spring配置文件定义dataSource、SessionFactory再注入DAO中是开发中常用的做法。 Spring依赖注入在项目中用于管理程序间的依赖,使我们更容易做到面向接口编程。 Spring可以采用Struts插件的方式与Struts轻松集成。 Spring支持声明式事务,可以以不写一行程序代码的方式给系统增加事务支持。2.5的方式
Hibernate+struts+spring整合
检索:查询检索方式:1.使用OID加载对象(单个对象)2.HQL检索方式hibernate query language 面向对象的查询语言3.QBC 检索方式Query by Criteria (通过标准查询) 更加面向对象(提供一个查询对象)4.QBE 检索方式Query by Example (通过例子来查询)5. 本地的sql语言Hibernate的一级缓存检索策略:(当查一个持久化类的对象时,它的关系属性所对应的对象如何查)检索策略是可以设置的:一般在映射文件中进行设置在默认情况下,一个持久化类的对象被查出来时,它的关系属性是一个代理对象。
当访问这个代理对象的时候,hibernate需要再次去查询数据库zy 延迟加载策略(减少内存的使用量) 立即加载a)在映射文件中设定i.Set容器端的设定:1.默认值为true 当加载对象时,set容器默认不查只是一个代理的set容器。
当程序访问set中的对象或调用set容器的size方法的时候,hibernate初始化这个set容器2.false 当加载对象时,set容器也立即初始化。
Set容器可以立即使用了。
3.extra当加载对象时,set容器默认不查只是一个代理的set容器。
当程序访问set中的对象或调用set容器的size方法的时候,hibernate会生成比较“聪明”的sql语句去查询数据库2.迫切左外连接检索策略a)在映射文件中设定:fetchi.Select 不查关系属性ii.* Join 启用迫切左外连接立即初始化set 容器。
只发送一条sql语句,同时生成多个po的对象。
可以减轻数据库服务器的压力。
-- 是迫切左外连接。
(对hql不起作用)1.使用hql进行检索时,如果要使用迫切左外连接,必须在hql中使用特定的关键字指定检索策略。
FetchSelect ddzb from Ddzb ddzb left join fetch ddzb.ddmxesiii.Sub-select 当访问一个代理的set容器时,hibernate将初始化内存(session)中当前持久化类所对应的所有没被初始化的代理set容器b)使用hql进行检索时,如果要使用迫切左外连接,必须在hql中使用特定的关键字指定检索策略。
最新版Hibernate-struts-spring框架整合
FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具
否
ognl-3.0.5.jar
3.0.5
ognl-3.0.5
支持ognl表达式
Ognl
否
辅
助
Jar
包
struts2-spring
-plugin-2.3.4.jar
2.3.4
struts2-spring
xwork-core
-2.3.4.jar
否
xwork-core
-2.3.4.jar
2.3.4
xwork-core
-2.3.4
xwork核心包
.opensymphony.xwork2/ .opensymphony.xwork2.cinfig/ .opensymphony.xwork2.ognl/
否
aopalliance.jar
3.3
asm-commons-3.3
提供了基于事件的表现形式
asm-tree-3.3.jar
3.3
asm-tree-3.3
提供了基于对象的表现形式
classworlds-1.1.jar
1.1
classworlds-1.1
基于java操作类装载的开发框架。java的classloader的机制和本地类可以引起头痛,多为某些类型的应用程序开发的混乱。
commons-beanutils-1.8.0.jar
1.8.0
commons-beanutils-1.8.0
jakarta commons项目中的一个子项目。这个项目开发的目的是帮助开发者动态的获取/设值JavaBean的属性,同时解决每次都要写getXXX和setXXX的麻烦
一章StrutsHibernateSpring-PPT精品文档
创建login_success.jsp,代码如下: <% page contentType="text/html;charset=gb2312" %> <% taglib prefix="s" uri="/struts-tags" %> <html> <body > <h2>您好! <s:property value=" xh"/>欢迎您登录成功 </h2> </body> </html>
Java EE实用教程
17.1 Spring与Struts 2的整合
部署运行项目,测试Struts 2是否正常运行,在浏览器中输入 “localhost:8080/ Spring_Struts/login.jsp”,在登录框和密码框中输入任意值, 单击“登录”按钮,转向登录成功界面,并输出登录名。到此为止,我们仅开 发了一个Struts 2的程序,下面介绍如何将Spring融入到项目中。首先,添加 Spring框架所需的类库,这里要添加Spring的类库“Spring 2.5 Core Libraries”及 “Spring 2.5 Web Libraries”,同时要添加Spring支持的Jar包struts2-springplugin.jar。该包位于Struts 2的lib文件夹下,该Jar文件用于支持Spring与Struts 2 的整合。在WEB-INF下创建Spring的核心配置文件applicationContext.xml,代码如 下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="/schema/beans" xmlns:xsi="/2019/XMLSchema-instance" xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-2.0.xsd"> ...//这里将配置Bean </beans>
Struts+Spring+Hibernate整合入门详解[1]
3、运行eclipse,选择一个空目录作为工作区(工程结构如下:其中我们要写的Java代码在Java Resource: src(以后直接称src)下,网站根目录内容在WebContent下,类所在根目录是WEB-INF/classes,Eclipse 会自动将build/classes里面已经编译的类同步过去。
向WEB-INF下的lib目录添加如下所列的jar包。
(1)这些包在下载解压后Spring,Struts,Hibernate的lib目录或者dist/module目录下面(如果不在,可以到网上google一把。
列表中mysql-*.jar包是MySQL数据库的JDBC Driver)。
也可以把所有lib和dist 下的jar包拷贝过来(可以在系统复制这些jar包,然后到Eclipse里面选中WEB-INF里面的lib包,然后粘帖就可以了)。
但要注意全拷贝可能会存在冲突,如struts*plugin.jar等包不能引入,否则不能运行。
(2)这些Jar包是:antlr-2.7.2.jarcglib-nodep-2.1_3.jarcommons-beanutils-1.6.jarcommons-chain-1.1.jarcommons-collections-2.1.1.jarcommons-dbcp.jarcommons-digester.jarcommons-logging-1.0.4.jarcommons-logging-api-1.1.jarcommons-pool.jarcommons-validator-1.3.0.jardom4j-1.6.1.jarel-api.jarel-ri.jarfreemarker-2.3.8.jarhibernate3.jarjsf-api.jarjta.jarmysql-connector-java-3.0.14-production-bin.jarognl-2.6.11.jaroro-2.0.8.jarspring-hibernate3.jarspring.jarstruts-config.xmlstruts-core-1.3.5.jarstruts2-codebehind-plugin-2.0.9.jarstruts2-config-browser-plugin-2.0.9.jarstruts2-core-2.0.9.jarstruts2-jasperreports-plugin-2.0.9.jarstruts2-jfreechart-plugin-2.0.9.jarstruts2-jsf-plugin-2.0.9.jarstruts2-pell-multipart-plugin-2.0.9.jarstruts2-plexus-plugin-2.0.9.jarstruts2-sitegraph-plugin-2.0.9.jarstruts2-sitemesh-plugin-2.0.9.jarstruts2-spring-plugin-2.0.9.jarstruts2-struts1-plugin-2.0.9.jarstruts2-tiles-plugin-2.0.9.jartiles-api-2.0.4.jartiles-core-2.0.4.jartiles-jsp-2.0.4.jarindex.jsp的内容如表,我们暂时不分析。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
系列七:整合Struts+Spring+Hibernate
课程安排
• 程序分层的设计思想 • 三个框架各司其职
– Hibenrate做持久层 – Struts做表现层 – Spring负责业务逻辑及其层次之间的整合
• 领域模型 • SSH开发用户登录实例
1-2
程序分层的设计思想
1-7
PPT精品课件
谢谢观看
Thank You or Watching
1-8
高内聚、低耦合的思想 持久层 业务层 表现层
1-3
程序分层的设计思想
• 持久层是对数据的管理,它直接与数据库打交道。Java的数 据持久化方式有多种,最常用的就是JDBC和ORM两种,所 以持久层往往包含了对象与关系的映射,保证领域模型的实 体与数据库的数据同步。它对上层提供的是数据访问接口, 业务逻辑层看到的往往是实体,而不是单独的数据,例如, 增加一个用户是saveUser(),删除一个用户是deleteUser() 。因此,持久层的对象往往被称为数据访问对象(DAO对象 ),也称为DAO层
• 顾名思义,业务层是专门用来写业务逻辑代码的。这一层的 代码是最敏感,最容易改动的,因为它实质上是由一个一个 的功能方法组成的,例如,用户登录功能,添加商品到购物 车功能等。业务层暴露给上层的是一个一个的接口,每一个 接口都代表了一组操作,例如,用户的增删查改4项操作
• 表现层的作用在于接收用户输入,调用业务逻辑层的方法, 根据处理结果做出相应的数据展示。听起来是不是有一点像 MVC呢,的确,表现层往往就是由一个MVC框架组成的,如 Struts。表现层存在的必要就在于它可以专门负责与用户打 交道,让数据的展示可以尽善尽美,而不必关系具体的业务 逻辑是如何实现的
1-4
三个框架各司其职
表现层
业务层
持久层
Struts
用于接收用户的输入 和展示处理结果
业务
业务对象
用于处理业务逻辑, 可能需要调用持久层
数据
Hibernate
也可称为数据层,专 门负责操作数据
领域模型
1-5
领域模型
• 领域模型的概念 • 穿插在各个层次之间的领域对象
1-6
SSH开发用户登录实例