在上篇博客中已经介绍了Struts的结构,下面来了解一下Struts的程序详细流程。

刚开始学习Struts很容易被Struts的具体运行流程所迷惑,理解了Struts的流程那么对于Struts的应用就更加简单了。

如下图,Struts的流程:

 

           下面用一个登录的Demo来介绍一下Struts的详细流程。

1.     首先服务器启动后,加载配置文件web.xml和struts-config.xml,之后加载web.xml中的Servlet即:ActionServlet。

2.     在客户端输入用户名和密码之后登录,之后客户端发送请求request(login.do)到Tomcat服务器,之后Tomcat创建一个新的HttpServletRequest和HttpServletResponse,来转发请求。

3.     客户端发送的登录请求被服务器端的ActionServlet拦截,拦截之后就截取URL,根据截取后的URL(login),将struts-config.xml中的Action标签的内容放到ActionMapping中,如:

<span style="font-size:18px;"><action-mappings> <action path="/login" type="com.bjpowernode.struts.LoginAction" name="loginForm" scope="request" > <forward name="success" path="/login_success.jsp" /> <forward name="error" path="/login_error.jsp"/> </action> </span>

 

4.     填充ActionForm,将请求中的用户名和密码填充到LoginActionForm

5.     之后创建业务逻辑控制器LoginAction,并且把请求转发到LoginAction,业务逻辑控制器取得表单数据LoginActionForm中的数据,然后就是调用业务逻辑JavaBean,业务逻辑处理完数据之后,判断是否存在这个用户,返回ActionForward信息到ActionServlet,如

<span style="font-size:18px;">return mapping.findForward("success"); </span>

6.     ActionServlet将收到ActionForward之后,把请求转发到JSP页面,JSP页面再返回HTTP响应,这样如果Client如果输入的用户名和密码正确的话,就显示登录成功—success.jsp页面。