`
runfeel
  • 浏览: 904868 次
文章分类
社区版块
存档分类
最新评论

SSH框架的逻辑流程

 
阅读更多

无论是已经熟知SSH开发的老手,还是想要快速上手SSH的程序员,或者是对SSH还一无所知的学生,搞清楚SSH这个框架的逻辑流程都是相当关键的。现在让我一起学习,或者回顾一下SSH的逻辑执行流程。

先简单叙述一下流程:

1 ) 客户端初始化一个指向servlet容器的请求
2 ) 请求经过一系列的过滤器(ActionContextCleanUp用来清除ac)
3)FilterDispatch被调用,去查询ActionMapper来确定是否去调用某个action
4)如果要调用某个action, filterdispatch将该请求交给Action Proxy
5)Action Proxy通过 Configuration Manager 找到需要调用的Action
6)Action Proxy创建ActionInvocation对象副本
7)ActionInvocation回调action的execute方法
8)ActionInvocation根据返回的字符串找到result。然后将result通过HttpServletResponse返回给服务器
其中,
struts用于接受请求,   
而spring则负责控制对象的创建,
在ssh框架中都所以的对象创建都由spring负责,
最后hibernate负责持久层 也就是与数据库的交互。
然后另一种对于SSH流程的解释是:
系统的基本业务流程是: 在表示层中,首先通过JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。

最后我们有必要从具体代码上再给与分析:

1,服务器启动时,加载Web.xml

读到struts-config.xml里,加载strutx-config.xml文件:

又读到插件,所以还需要加载Spring配置文件ApplicationContext.xml

此时遇到了Hibernate.cfg.xml

到此,各个配置文件加载完毕。

先说web.xml,接着通过welcom-file中的login.jsp跳转到欢迎登陆界面,就会出现开头的那张图了。

接着,最有意思的是Spring的配置文件了,我好几次问题都出现在那里:

请注意,它是顺序执行的,每次进行的加载,都是把整个页面的配置信息都执行完了,才叫加载完成。所以服务器启动时,会等待很长一段时间,我的是17s

iadmin对应的是接口类IAdmin

UserDAO对应的是DAO实现类:

关键在这个类,Action处理类LoginAction

我这里用的是分发Action(DispatchAction)。这里最需要注意的是名字命名时的大小写问题。

注意跟Spring配置文件要对应。(我就是在这里犯的错误!)

另外对其实文件的一些说明:

用分发Action时,在Struts-config.xml里要注意:

需要有个,然后View层通过传具体的method值到Action中进行处理;我这里用通过与Spring进行集成,使得比较直观。还有一个在Struts的配置文件中这点细节注意,它跟页面的是对应的。同时页面是通过把值传给服务器的。

希望对大家有帮助(*^__^*)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics