SSH框架的运行过程解析

来源:互联网 发布:大气数据系统 编辑:程序博客网 时间:2024/05/21 16:22

环境:Spring2.5+Struts1.3+hibernate3.3

ssh框架,在jsp上点击“提交”按钮后程序的运行过程:

1. 点击按钮,提交如下表单:
<form action="${pageContext.request.contextPath}/log.do?flag=addLog" method="post">
<table border="1" cellpadding="10" cellspacing="0">
......
</table>
</form>

这个表单里传递的信息有:action的名字为log 调用的方法是addLog()
2. 触发request请求,通过internet传输到服务器软件(Tomcat),tomcat接受到请求,然后根据web.xml的配置,将请求发送到Struts的核心拦截器。
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
3. Struts根据struts-config.xml的配置文件,找到对应的Action

然后根据在struts中配置的代理请求,找到在Spring 中配置的bean

然后根据bean,找到对应的addLog方法

上面是整个调用过程,更详细的理解还有:Struts根据struts的配置文件,将spring看为bean工厂,从spring中获取action。
spring根据spring的配置文件,实例化action,并注入service(注入的service已经注入好了Dao,Dao已经注入好了SessionFactory)。Struts2将请求的参数set到Action。
Struts2根据struts.xml的配置调用Action的execute方法。(这个方法你是编写的,当然这个方法会一步步的调用Service,Service会调用Dao)。然后struts2根据execute方法的返回值,根据struts.xml配置,找到应该返回的JSP页面。最后由Tomcat实时生成Html页面,通过Internet用户浏览器接受到Html,并显示出来。
刚开始学习,总结的不对的地方还请大家多多指教。

0 0