📄 struts流程.txt
字号:
http://localhost:8080/Struts/user/login.do
1.ActionServlet根据请求中的/user找到moduleConfig(模块)
2.moduleConfig找到模块所对应的RequestProcessor(请求处理器)
3.RequestProcessor根据请求中的/login找到ActioinMapping
(是包含在moduleConfig中的actionConfigs集合)
4.判断ActionMapping的name属性是否为空,
为空:代表此Action没有使用ActionForm
不为空:代表此Action使用ActionForm
1.到范围(scope:[request,session])中找有没有这样的ActionForm
(根据ActionMapping中的Attribute属性作为key去找)
如果有,就直接拿来使用
如果没有,创建一个放入范围中
2.调用ActionForm中的reset()方法,意图将ActionForm中
所有字段设为初始值
3.将请求中的参数,通过反射的方式填充(调用了参数名
所对应的setter方法)进此ActionForm中
4.调用ActionForm中的validate()方法,进行验证,并判断
返回值(ActionErrors)
为null:继续执行
不为null:跳转到ActionMapping的input属性所对应的页面。
5.ActionMapping根据type属性找到对应的Action
6.Action再从ActionMapping中根据逻辑找到ActionForward
(包含在ActionMapping中的一个actionforwards的集合)交还给
RequestProcessor
7.RequestProcessor根据ActionForward中的path属性进行请求派发
或者重定向(redirect)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -