1.访问/struts/form/hello.jsp
2.提交表单后数据提交到/struts/hello.do
3.struts截获*.do的请求
4.查找struts-config.xml,hello.do对应HelloForm与HelloAction
5.将表单封装为HelloForm 并反射调用HelloAction的execute()
6.forword到/form/hello success.jsp
struts 引入了几个概念:Form Bean 与Action.Form Bean也称为表单对象,即上例中的HelloForm,是对JSP中表单的封装,使jsp中的域都能使用getter,setter方法获取,从而抛弃request.getParameter("")的方式。HelloForm还能进行数据类型转化。
Action 可以看做Servlet的一部分,运行主要的业务代码,注意它并不是真正的Servlet,没有实现Servlet接口,struts会通过反射调用Action的方法。()
Hello.jsp是一个表单页面,提交表单后将数据提交到hello.do。这是一个struts的URL,将会被struts配置在web.xml中的ActionServlet截获。ActionServlet查找struts-config.xml,找到hello.do对应的配置,分别死表单对象HelloForm,Action对象HelloAction.
然后Struts将hello.jsp中的表单封装为HelloForm对象,并通过反射调用HelloAction的execute(ActionMapping mapping,ActionForm,HttpservletRequest request,HttpServletResponse response)方法,参数mapping代表struts-config-xml配置,参数form即封装后的Form对象, request与response 为Servlet的请求与回应。
HelloAction的execute()方法为struts 的主要方法,主要的业务逻辑代码就写在这里面。