SSH和SpringMVC

来源:互联网 发布:批量修图软件 编辑:程序博客网 时间:2024/06/06 16:27

思考:

(1)SSH对应的MVC

(2)Struts的MVC,SpringMVC, Hibernate为什么没有MVC

 

一、SSH & MVC

下图为SSH对应的MVC,仅作参考:

Details(元素讲解及细节解说):

a.V,view,视图层;C,control,控制层;M,model,模型层=业务逻辑层+持久层

b.Struts:封装JSP+Servlet,故为V+C(分层不清楚,Action做了一些Model的东西时,会导致右偏,如下图)

c.Manager:业务逻辑层

d.Hibernate:持久层

e.Spring:

左至V的最左边,是考虑到Spring有自己的SpringMVC;

右至M的最右边,是考虑到它和Hibernate集成的时候,注入SessionFactory,涉及Session,直抵JDBC,故至M的最右边。(还有配置事务)

f.Spring可以独立于Struts和Hibernate之外,独成一体,也可以只和Struts结合,或只和Hibernate结合,或三者结合,或与其他框架结合,所以把它单独拿出来,放到了上面。

 

二、SSH内部的MVC

(1)Struts的MVC

第一步:用户发送request请求给核心控制器ActionServlet,它作为中心分发器,交给其他相应的Action处理。

第二步:ActionServlet根据ActionMapping中的配置信息(ActionMapping配置信息在核心配置文件struts-config.xml中),请求处理器的信息。

第三步:核心控制器交给相应的Action处理。

第四步:相应的Action调用后台的业务逻辑,最后返回ActionForward。

第五步:根据返回的ActionForward查找并跳转对应的视图(配置在struts-config.xml中)

第六步:解析相应的页面,渲染视图。

(2)SpringMVC

结构和Struts的MVC极其相似:

第一步:用户发送request请求给核心控制器DispatcherServlet,它作为中心分发器,交给其他的相应的action(controller)处理。

第二步:DispatcherServlet根据HandlerMapping中的配置信息(HandlerMapping配置信息在核心配置文件servletName-servlet.xml中),请求处理器的信息。

第三步:核心控制器交给相应的controller处理

第四步:相应的控制器调用后台的业务逻辑后,返回的ModuleAndView对象,其中的Module数据对象,View是视图对象

第五六步:根据返回的逻辑视图名查找视图解析器(同样也在核心文件中进行了配置),解析成相应的页面。

(3)Hibernate没有MVC?

主要功能是持久层;

没有页面;

可以很好的和其他MVC框架集成…

0 0
原创粉丝点击