一.流程图
框架往往封装了太多的东西,一次struts请求在其内部的流程如下图所示:
二、流程详解
- web.xml:http请求(可以是url链接也可以是form表单)首先会被web.xml里的StrutsPrepareAndExecuteFilter过滤器过滤,默认只拦截.action的请求,也会拦截在struts常会配置中。struts.action.extension属性自定义的.do或其他请求。
- struts.xml: .action请求经过web.xml过滤转发到struts.xml,根据url地址与相应类进行匹配,匹配成功进入相应的action类。
- 前置拦截器:在进入相应action类之前首先要经过前置拦截器,完成数据封装、文件上传等操作。
- action类:经过前置拦截器以后,在action类中执行操作,作用相当于servlet,完成相应操作(比如接收数据、持久化数据)以后返回一个字符串。
- 后置拦截器:后置拦截器完成异常信息拦截、日志信息处理等操作。
- struts.xml:根据返回的字符串,匹配相应的结果页。
- jsp页面:jsp页面就是与struts.xml中相匹配的结果页面。