﻿<?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-wilsonyq-文章分类-struts2</title><link>http://www.blogjava.net/wilsonyq/category/50770.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 08 Feb 2012 08:18:27 GMT</lastBuildDate><pubDate>Wed, 08 Feb 2012 08:18:27 GMT</pubDate><ttl>60</ttl><item><title>struts2工作原理</title><link>http://www.blogjava.net/wilsonyq/articles/369606.html</link><dc:creator>wilsonyq</dc:creator><author>wilsonyq</author><pubDate>Wed, 08 Feb 2012 08:18:00 GMT</pubDate><guid>http://www.blogjava.net/wilsonyq/articles/369606.html</guid><wfw:comment>http://www.blogjava.net/wilsonyq/comments/369606.html</wfw:comment><comments>http://www.blogjava.net/wilsonyq/articles/369606.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wilsonyq/comments/commentRss/369606.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wilsonyq/services/trackbacks/369606.html</trackback:ping><description><![CDATA[<span style="font-family: Comic Sans MS;"> </span><div>  <h1><span style="font-family: Comic Sans MS;">struts2</span><span style="font-family: Comic Sans MS;">流程</span></h1><img alt="" src="http://www.blogjava.net/images/blogjava_net/wilsonyq/dfgsdfgd.jpg" height="547" width="555" />  <p><span style="font-size:9.0pt;font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;"></span></p>  <p><span style="font-size: 9pt; font-family: Comic Sans MS;">一个请求在Struts2框架中的处理大概分为以下几个步骤：</span></p>  <p>&nbsp;</p>  <p><span style="font-size: 9pt; font-family: Comic Sans MS;">1</span><span style="font-size: 9pt; font-family: Comic Sans MS;">）&nbsp;客户端初始化一个指向Servlet容器（例如Tomcat）的请求。</span></p>  <p><span style="font-size: 9pt; font-family: Comic Sans MS;">2</span><span style="font-size: 9pt; font-family: Comic Sans MS;">）&nbsp;这个请求经过一系列的过滤器（Filter）。</span></p>  <p><span style="font-size: 9pt; font-family: Comic Sans MS;">3</span><span style="font-size: 9pt; font-family: Comic Sans MS;">）&nbsp;接着FilterDispatcher被调用，FilterDispatcher询问ActionMapper来决定这个请求是否需要调用某个Action。</span></p>  <p><span style="font-size: 9pt; font-family: Comic Sans MS;">4</span><span style="font-size: 9pt; font-family: Comic Sans MS;">）&nbsp;如果ActionMapper决定需要调用某个Action，FilterDispatcher把请求的处理交给ActionProxy。</span></p>  <p><span style="font-size: 9pt; font-family: Comic Sans MS;">5</span><span style="font-size: 9pt; font-family: Comic Sans MS;">）<span style="font-family: Comic Sans MS;">&nbsp; ActionProxy</span></span><span style="font-size: 9pt; font-family: Comic Sans MS;">通过Configuration Manager询问框架的配置文件，找到需要调用的Action类。</span></p>  <p><span style="font-size: 9pt; font-family: Comic Sans MS;">6</span><span style="font-size: 9pt; font-family: Comic Sans MS;">）<span style="font-family: Comic Sans MS;">&nbsp; ActionProxy</span></span><span style="font-size: 9pt; font-family: Comic Sans MS;">创建一个ActionInvocation的实例。</span></p>  <p><span style="font-size: 9pt; font-family: Comic Sans MS;">7</span><span style="font-size: 9pt; font-family: Comic Sans MS;">）<span style="font-family: Comic Sans MS;">&nbsp; ActionInvocation</span></span><span style="font-size: 9pt; font-family: Comic Sans MS;">实例使用命名模式来调用，在调用Action的过程前后，涉及到相关拦截器（Intercepter）的调用。</span></p>  <p><span style="font-size: 9pt; font-family: Comic Sans MS;">8</span><span style="font-size: 9pt; font-family: Comic Sans MS;">）&nbsp;一旦Action执行完毕，ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。</span></p>  <p>&nbsp;</p>  <p><span style="font-size: 9pt; font-family: Comic Sans MS;">Struts2</span><span style="font-size: 9pt; font-family: Comic Sans MS;">的核心就是拦截器。Struts.xml中所有的package都要extends="struts-default"。同理与所有的Java类都要extends自Object一样。struts-default.xml里面就是要做以上事情。</span></p>  </div><img src ="http://www.blogjava.net/wilsonyq/aggbug/369606.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wilsonyq/" target="_blank">wilsonyq</a> 2012-02-08 16:18 <a href="http://www.blogjava.net/wilsonyq/articles/369606.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>