﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Neil's Blog-随笔分类-Struts</title><link>http://www.blogjava.net/thelayman/category/11607.html</link><description>每个人都有自己该做的事，把自己该做的事做好，就是成功。</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 21:00:42 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 21:00:42 GMT</pubDate><ttl>60</ttl><item><title>Struts学习笔记（一）</title><link>http://www.blogjava.net/thelayman/archive/2006/05/28/48615.html</link><dc:creator>Neil's Java</dc:creator><author>Neil's Java</author><pubDate>Sun, 28 May 2006 11:38:00 GMT</pubDate><guid>http://www.blogjava.net/thelayman/archive/2006/05/28/48615.html</guid><wfw:comment>http://www.blogjava.net/thelayman/comments/48615.html</wfw:comment><comments>http://www.blogjava.net/thelayman/archive/2006/05/28/48615.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/thelayman/comments/commentRss/48615.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/thelayman/services/trackbacks/48615.html</trackback:ping><description><![CDATA[<p>小弟刚开始学struts，希望能和各位新手和高手一起讨论学习，提高自己的水平。如果在文章中有什么错误的地方，希望大家能给我指点，欢迎大家的指点。<br />在学习中，Struts结构中，最主要的是5个类：<br />ActionServlet、ActionForm、ActionForward、ActionMapping、Action<br />这5个类，我们需要编写主要是ActionForm和Action类，Struts核心控制器是ActionServlet，这个类我们也可以自己扩展编写子类，不过在一般的应用系统中，不要自己进行扩展就足够了。<br />在核心处理中，操作主要集中在ActionServlet和RequestProcessor两个类，它们是中央控制器的核心内容。<br />首先是ActionServlet类，它继承与HttpServlet，它的主要任务是：<br />1.接受用户的请求<br />2.根据request，调用合适的模型组件来执行相应的业务逻辑<br />3.获取执行结果<br />4.根据当前状态，以及逻辑执行结果，选择合适的组件返回给用户。<br />它的init()方法中，主要是初始化框架结构中各个组件的初始化参数，在doGet()和doPost()方法中都调用了process()方法，主要是获取RequestProcessor对象，并执行这个对象的process()方法。<br />在RequestProcessor类中，主要用process()方法，主要流程是：<br />1.调用processPath()方法获取请求的URI的路径。<br />2.调用processMapping()寻找和用户请求的URI匹配的ActionMapping。<br />3.调用processActionForm()方法判断是否存在ActionForm对象，如果不存在就新建一个对象。<br />4.调用processPopulate()把表单中的数据填充到ActionForm对象中去。<br />5.调用processValidate()访问想对应的ActionMapping对象中Validate是否为true，如果是就调用ActionForm中的Validate()方法对数据进行检验。<br />6.调用processActionCreate()判断是否在Action缓存中存在这个Action，如果没有就新建一个。<br />7.调用processActionPerform()它主要调用Action对象中的execute()方法。<br />8.调用processActionForward()把第7步返回的对象作为参数，进行页面的选择返回给用户。<br />以上就是我在阅读Struts源码后，对Struts工作流程的理解。<br />其他内容还需要进一步的学习，希望喜欢的朋友捧场和指点，谢谢</p><img src ="http://www.blogjava.net/thelayman/aggbug/48615.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/thelayman/" target="_blank">Neil's Java</a> 2006-05-28 19:38 <a href="http://www.blogjava.net/thelayman/archive/2006/05/28/48615.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>