## 一.流程图
框架往往封装了太多的东西,一次struts请求在其内部的流程如下图所示:
![](https://box.kancloud.cn/2016-02-26_56cfbddcc4313.jpg)
## 二、流程详解
1. web.xml:http请求(可以是url链接也可以是form表单)首先会被web.xml里的StrutsPrepareAndExecuteFilter过滤器过滤,默认只拦截.action的请求,也会拦截在struts常会配置中。struts.action.extension属性自定义的.do或其他请求。
2. struts.xml: .action请求经过web.xml过滤转发到struts.xml,根据url地址与相应类进行匹配,匹配成功进入相应的action类。
3. 前置拦截器:在进入相应action类之前首先要经过前置拦截器,完成数据封装、文件上传等操作。
4. action类:经过前置拦截器以后,在action类中执行操作,作用相当于servlet,完成相应操作(比如接收数据、持久化数据)以后返回一个字符串。
5. 后置拦截器:后置拦截器完成异常信息拦截、日志信息处理等操作。
6. struts.xml:根据返回的字符串,匹配相应的结果页。
7. jsp页面:jsp页面就是与struts.xml中相匹配的结果页面。
## 三、项目中配对应流程
![](https://box.kancloud.cn/2016-02-26_56cfbddce040e.jpg)
- 前言
- [J2EE]java web项目中调用word转html命令行工具
- [J2EE]jsp项目中使用UEditor富文本编辑器
- [J2EE]The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
- [j2ee]Eclipse搭建SSH开发框架
- Could not open Hibernate Session for transaction
- class org.springframework.web.context.ContextLoaderListener
- [java01]Java基本数据类型
- [java02]运算符
- jsp、javabean学生信息管理系统
- [java03]java字符串
- [ssh新闻发布系统一]搭建开发环境
- [ssh新闻发布系统二] 读取新闻
- [ssh新闻发布系统三]存储新闻
- [ssh新闻发布系统四]使用富文本编辑器发布新闻
- [ssh新闻发布系统五]删除新闻
- struts2 helloworld
- struts请求走向流程
- [java04]java大数类