码迷,mamicode.com
首页 > 其他好文 > 详细

struts1.2源码分析记录

时间:2014-07-23 21:35:05      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:http   java   使用   文件   数据   io   

struts思路:
1.struts使用的三板斧ActionForm、DispatchAction、ActionMapping
2.主要关注点:Form、Action、Forward
3.页面如何发送请求参数,后台如何截取.do请求,如何将参数组装成Form,在Action中如何操作Form,如何查找目标页面,如何将Form返回到页面,页面如何通过标签读取Form属性

框架主流程:
Struts所有的请求都要走DispatchAction类的public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse res)方法
可以重载execute方法(完成用户校验,数据库连接初始化),并可以根据method参数将操作转向处理方法。

框架细节:
1.接收.do请求
2.将参数转化成ActionForm
3.找到对应DispatchAction并将ActionForm传递给该DispatchAction的对应方法
4.从mapping中找到目标页面,将ActionForm进行序列化,发送到页面
5.页面通过标签对Form进行解析
框架细节代码(处理http请求并返回):
1.ActionMapping mapping = processMapping(request, response, path);
2.ActionForm form = processActionForm(request, response, mapping);
3.processPopulate(request, response, form, mapping);
4. ActionForward forward =processActionPerform(request, response,action, form, mapping);
5.processForwardConfig(request, response, forward);
6.response.sendRedirect(response.encodeRedirectURL(uri));
7.RequestDispatcher rd = getServletContext().getRequestDispatcher(uri); rd.forward(request, response);


从配置文件和解析配置文件入手
1.struts-config.xml的结构
a.主要元素:data-sources、form-beans、action-mappings、global-forwards、global-exceptions、message-resources、plug-in
b.通过common-digester工具包结合dtd进行xml的自动解析和加载
2.解析struts-config.xml的过程
a.ModuleConfig是与struts-config.xml配对的java对象
b.将xml配置信息加载到内存后,会将资源分配给各个需要的模块并进行初始化


 

struts1.2源码分析记录,布布扣,bubuko.com

struts1.2源码分析记录

标签:http   java   使用   文件   数据   io   

原文地址:http://my.oschina.net/u/1458864/blog/294242

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!