之前的实例演示,我们已经基本了解了如何使用Struts框架,这次我们主要讲解一下Struts框架是如何具体实现MVC的。
在介绍之前有几个名词需要大家理解一下:
ActionServlet:充当Struts框架的中央控制器 ,负责截取URL或分发ActionForm :用于封装用户的请求参数,而请求参数是通过JSP页面的表单域传递过来的。
Action:是用户请求和业务逻辑之间的桥梁,每个Action充当客户的一项业务代理
ActionForward:主要是用于存储转向信息,封装转发路径,即完成页面的跳转和转向
ActionMapping:存储特定请求映射到特定Action的相关信息
了解上述几个基本概念之后,我们看一下Struts框架的基本流程,如下图所示:
1、首先客户端发出一个request请求,将其传递到响应的容器中。2、容器根据我们配置的Web.xml文件,将其传递给对应的Servlet,这里传递的就是Struts的核心控制类ActionServlet,当然传递的过程中肯定会有request、response对象作为参数。
3、ActionServlet根据截取URL,根据URL的不同取得相应的配置信息,这些配置信息存储在ActionMapping中(ActionServlet 初始时,完成struts-config.xml文件中的配置信息到ActionMapping对象的转换,并将其存储在内存中)。
4、ActionServlet 会根据URL取得ActionMapping中的配置信息之后,会创建相应的ActionForm和Action对象,并将页面数据存储到ActionForm对象。
5、ActionServlet会将request、response、ActionForm、ActionMapping作为参数,执行Action的execute()方法,执行相应的操作(可以调用Model层)。
6、Action执行完毕之后,根据ActionMapping中的相关信息,完成ActionForward对象的创建并将其返回。
7、ActionServlet接受到ActionForward对象之后,会根据ActionForward中的path属性,渲染成相应的jsp页面。
8、浏览器接受相应的jsp页面之后,将其显示出来。
到此为止,Struts的基本实现过程我们已经基本了解,下次我们根据这个流程来自己写一个简单的Struts框架的实例。