具体说说ssh框架中struts,hibernate和spring各自的功能是怎么实现的?

 我来答
pwy179_
2011-01-05
知道答主
回答量:48
采纳率:0%
帮助的人:13万
展开全部
1,前台表单提交from请求到后台.
2,这请求由struts的ActionSevlet捕获.
3.根据path属性读取struts的主配置文件,找到对应Action元素模块.
4.ActionFrom被找到.
5.找对应spring代理,把请求权交spring代理类.
6.spring根据bean的name属性的值,跟struts主配置文件path属性的值相等,找到对应的bean模块 ,把请求转到该bean.
7.假如该Action 需要调后台的业务类, 这时候直接利用spring的IOC注入找到业务类.
8.如果业务类使用到hibernate,就要用到spring代理的bibernate.
如果是跟数据库处理,全是用的hibernate的对象关系映射.
9.spring在整个框架当中起辅助作用.spring对 struts支持体现在把struts的Action当成bean来管理.
10.spring跟hibernate, 提供了声明式事务,对其事务简化.spring提供Hibernate Dao Support这个类简化hibernate的繁琐操作.
shihoumacili
高粉答主

2016-02-04 · 每个回答都超有意思的
知道大有可为答主
回答量:1.1万
采纳率:87%
帮助的人:489万
展开全部
struts工作原理
工作机制:
Struts的工作流程:
在web应用启动时就会加载初始化ActionServlet,ActionServlet从
struts-config.xml文件中读取配置信息,把它们存放到各种配置对象
当ActionServlet接收到一个客户请求时,将执行如下流程.
-(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息;
-(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中;
-(3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法;
-(4)如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActuibErrors对象, 就表示表单验证成功;
-(5)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的 Action实例不存在,就先创建这个实例,然后调用Action的execute()方法;
-(6)Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给 ActionForward对象指向的JSP组件;
-(7)ActionForward对象指向JSP组件生成动态网页,返回给客户;

hibernate工作原理
原理:
1.读取并解析配置文件
2.读取并解析映射信息,创建SessionFactory
3.打开Sesssion
4.创建事务Transation
5.持久化操作
6.提交事务
7.关闭Session
8.关闭SesstionFactory

spring工作原理
1.spring mvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。
2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.
3.DispatcherServlet请请求提交到目标Controller
4.Controller进行业务逻辑处理后,会返回一个ModelAndView
5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象
6.视图对象负责渲染返回给客户端。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友68795a8
2010-12-29
知道答主
回答量:30
采纳率:0%
帮助的人:12万
展开全部
各管各的,struts实现mvc,hibernate负责orm,spring管理各种bean
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pxhffqa
2011-01-03 · TA获得超过885个赞
知道小有建树答主
回答量:530
采纳率:0%
帮助的人:378万
展开全部
HQL 你得用到抓取~~ 去抓取~~ 从表数据~~~
关键字 fetch
from a left join fetch
a.b (注意是去抓A BEAN 里的b对象~~~的数据~)

这个样 A Bean里的 B 对象就有值楼~~~~

如果你还是不行~~ kkii_55@163.com MSN 联系~~
我给你发个列子~~~大家一起探讨~~我也是刚刚接触
(你用的是Spring提供的hibernate DAO 类 还是 hibernate 的???)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
codeboot
2010-12-28 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:207
采纳率:0%
帮助的人:111万
展开全部
反射
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式