📄 入門 13 - 從actionservlet到requestprocessor - javaworld@tw.htm
字号:
<SPAN class=java-comment>// 前置處理,預設返回 <SPAN class=java-keyword>true</SPAN>,子類可以重新定義它以決定要不要繼續處理</SPAN>
<SPAN class=java-keyword>if</SPAN>(!processPreProcess(request, response)) {
<SPAN class=java-keyword>return</SPAN>;
}
<SPAN class=java-comment>// 從URI路徑確定ActionMapping</SPAN>
ActionMapping mapping = processMapping(request, response, path);
<SPAN class=java-keyword>if</SPAN>(mapping == <SPAN class=java-keyword>null</SPAN>) {
<SPAN class=java-keyword>return</SPAN>;
}
....
<SPAN class=java-comment>// 處理ActionForm,如果沒有就新增一個,之後一直使用它</SPAN>
ActionForm form = processActionForm(request, response, mapping);
<SPAN class=java-comment>// 將表單的欄位值填入ActionForm</SPAN>
processPopulate(request, response, form, mapping);
<SPAN class=java-comment>// 判斷是否執行ActionForm的validate()方法</SPAN>
<SPAN class=java-keyword>if</SPAN>(!processValidate(request, response, form, mapping)) {
<SPAN class=java-keyword>return</SPAN>;
}
<SPAN class=java-comment>// 判斷 <action> 標籤的 forward 或 include 標籤是不是被設定</SPAN>
<SPAN class=java-comment>// 這兩個標籤在設定一個路徑,其與 type 屬性是互斥的,當設定</SPAN>
<SPAN class=java-comment>// 其中一個屬性時,調用 RequestDispatcher 的 forward() 或</SPAN>
<SPAN class=java-comment>// include() ,其作用與設定ForwardAction或IncludeAction相同</SPAN>
<SPAN class=java-comment>// 直接繞送而不再使用Action物件進行接下來的處理</SPAN>
<SPAN class=java-keyword>if</SPAN>(!processForward(request, response, mapping)) {
<SPAN class=java-keyword>return</SPAN>;
}
<SPAN class=java-keyword>if</SPAN>(processInclude(request, response, mapping)) {
<SPAN class=java-keyword>return</SPAN>;
}
<SPAN class=java-comment>// 處理Action,如果沒有就生成一個,之後一直使用它</SPAN>
Action action = processActionCreate(request, response, mapping);
<SPAN class=java-keyword>if</SPAN>(action == <SPAN class=java-keyword>null</SPAN>) {
<SPAN class=java-keyword>return</SPAN>;
}
<SPAN class=java-comment>// 呼叫Action的execute()或perform()方法,並返回ActionForward</SPAN>
ActionForward forward = processActionPerform(request, response, action, <SPAN class=java-keyword>for</SPAN>, mapping);
<SPAN class=java-comment>// 處理ActionForward</SPAN>
processActionForward(request, response, forward);
}</PRE></DIV></DIV><BR> 您可以繼承RequestProcessor,並改寫其中的processXXXXX()方法來自定義請求的處理方式,如果您要使用自己的
RequestProcessor,要要在struts-config.xml中使用<controller>標籤來定義,例如:
<DIV class=code
style="BORDER-TOP-STYLE: solid; BORDER-RIGHT-STYLE: solid; BORDER-LEFT-STYLE: solid; BORDER-BOTTOM-STYLE: solid">
<DIV class=codeHeader
style="BORDER-BOTTOM-STYLE: solid"><B>struts-config.xml</B></DIV>
<DIV class=codeContent><PRE><controller
contentType=<SPAN class=java-quote>"text/html;charset=Big5"</SPAN>
locale=<SPAN class=java-quote>"<SPAN class=java-keyword>true</SPAN>"</SPAN>
nocache=<SPAN class=java-quote>"<SPAN class=java-keyword>true</SPAN>"</SPAN>
processorClass=<SPAN class=java-quote>"onlyfun.caterpillar.CustomRequestProcessor"</SPAN>/></PRE></DIV></DIV><BR> 在Struts
1.1中,新增了<controller>標籤,它用於指定給ActionServlet的一些參數,在Struts
1.1之前,這些參數是在<init-params>中加以指定,使用<controller>標籤,應用程式中不同的模組也可以指定各自的參數給ActionServlet。
<!-- page content ends --><!--<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"><rdf:Description rdf:about="http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=593" dc:identifier="http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=593" dc:title="入門 13 - 從ActionServlet到RequestProcessor" trackback:ping="http://www.javaworld.com.tw/confluence/rpc/trackback/593"/></rdf:RDF>-->
<P>
<DIV class=greybox><IMG height=16
src="入門 13 - 從ActionServlet到RequestProcessor - JAVAWORLD@TW.files/comment_16.gif"
width=16 align=absMiddle border=0> 0 comments | <A
href="http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=593&showComments=true#addcomment"><IMG
height=16
src="入門 13 - 從ActionServlet到RequestProcessor - JAVAWORLD@TW.files/add_comment_16.gif"
width=16 align=absMiddle border=0></A> <A
href="http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=593&showComments=true#addcomment">Add
Comment</A> </DIV></TD>
<TD width=5> </TD>
<TD vAlign=top width="25%">
<DIV class=navmenu>
<DIV class=menuheading>Page Operations</DIV>
<DIV class=menuitems>
<DIV class=operations>
<UL>
<LI><A accessKey=i
href="http://www.javaworld.com.tw/confluence/pages/pageinfo.action?pageId=593"><IMG
title="Page Information" height=16
src="入門 13 - 從ActionServlet到RequestProcessor - JAVAWORLD@TW.files/about_16.gif"
width=16 align=absMiddle border=0></A><SPAN class=label> <A
href="http://www.javaworld.com.tw/confluence/pages/pageinfo.action?pageId=593">Page
Information</A></SPAN>
<LI><A
href="http://www.javaworld.com.tw/confluence/pages/viewpreviousversions.action?pageId=593"><IMG
title="Page History" height=16
src="入門 13 - 從ActionServlet到RequestProcessor - JAVAWORLD@TW.files/history_16.gif"
width=16 align=absMiddle border=0></A><SPAN class=label> <A
href="http://www.javaworld.com.tw/confluence/pages/viewpreviousversions.action?pageId=593">Page
History</A></SPAN> </LI></UL>
<UL>
<LI><A
href="http://www.javaworld.com.tw/confluence/display/opensrc/Home"><IMG
title="Space Homepage" height=16
src="入門 13 - 從ActionServlet到RequestProcessor - JAVAWORLD@TW.files/home_16.gif"
width=16 align=absMiddle border=0></A><SPAN class=label> <A
href="http://www.javaworld.com.tw/confluence/display/opensrc/Home">Space
Homepage</A></SPAN>
<LI><A
href="http://www.javaworld.com.tw/confluence/spaces/viewspacesummary.action?key=opensrc"><IMG
title="Space Summary" height=16
src="入門 13 - 從ActionServlet到RequestProcessor - JAVAWORLD@TW.files/web_16.gif"
width=16 align=absMiddle border=0></A><SPAN class=label> <A
href="http://www.javaworld.com.tw/confluence/spaces/viewspacesummary.action?key=opensrc">Space
Summary</A></SPAN> </LI></UL></DIV>
<P>
<DIV class=infopanel-heading>Incoming Links: <SPAN
class=smallfont>(<A
href="http://www.javaworld.com.tw/confluence/pages/pageinfo.action?pageId=593#incoming">more</A>)</SPAN>
</DIV><IMG title=Struts入門 height=16
src="入門 13 - 從ActionServlet到RequestProcessor - JAVAWORLD@TW.files/docs_16.gif"
width=16 align=absMiddle border=0> <A
href="http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=1958">Struts入門</A>
<BR>
<P></P>
<P>
<DIV class=infopanel-heading>Hot Referrers: <SPAN
class=smallfont>(<A
href="http://www.javaworld.com.tw/confluence/pages/pageinfo.action?pageId=593#referers">more</A>)</SPAN>
</DIV><SPAN class=smallerfont><A
title=http://140.138.150.106/confluence/pages/viewpage.action?pageId=593
href="http://140.138.150.106/confluence/pages/viewpage.action?pageId=593">140.138.150.106/confluence/pa...</A>
(28) <BR><A
title=http://www.jsptw.com/confluence/pages/viewpage.action?pageId=1958
href="http://www.jsptw.com/confluence/pages/viewpage.action?pageId=1958">http://www.jsptw.com/confluence/pages/viewpage.action?pageId=1958</A>
(19) <BR><A
title=http://javaworld.com.tw/confluence/pages/viewpage.action?pageId=1958
href="http://javaworld.com.tw/confluence/pages/viewpage.action?pageId=1958">javaworld.com.tw/confluence/p...</A>
(9) <BR><A
title=http://www.baidu.com/s?lm=0&si=&rn=10&ie=gb2312&ct=0&wd=actionservlet&pn=10&cl=3
href="http://www.baidu.com/s?lm=0&si=&rn=10&ie=gb2312&ct=0&wd=actionservlet&pn=10&cl=3">http://www.baidu.com/s?lm=0&si=&rn=10&ie=gb2312&ct=0&wd=actionservlet&pn=10&cl=3</A>
(8) <BR><A
title=http://140.138.150.106/confluence/pages/viewpage.action?pageId=593&showComments=true
href="http://140.138.150.106/confluence/pages/viewpage.action?pageId=593&showComments=true">140.138.150.106/confluence/pa...</A>
(7) <BR><A
title=http://140.138.150.106/confluence/pages/viewpage.action?pageId=593&showComments=false
href="http://140.138.150.106/confluence/pages/viewpage.action?pageId=593&showComments=false">140.138.150.106/confluence/pa...</A>
(7) <BR><A
title=http://140.138.150.106/confluence/pages/viewpage.action?pageId=1958
href="http://140.138.150.106/confluence/pages/viewpage.action?pageId=1958">140.138.150.106/confluence/pa...</A>
(7) <BR><A
title=http://www.google.com.tw/search?hl=zh-TW&q=requestProcessor&meta=cr%3DcountryTW
href="http://www.google.com.tw/search?hl=zh-TW&q=requestProcessor&meta=cr%3DcountryTW">Google:
requestProcessor</A> (4) <BR><A
title=http://www.baidu.com/baidu?wd=requestprocessor&cl=3
href="http://www.baidu.com/baidu?wd=requestprocessor&cl=3">http://www.baidu.com/baidu?wd=requestprocessor&cl=3</A>
(3) <BR><A title=http://www.baidu.com/s?wd=RequestProcessor&cl=3
href="http://www.baidu.com/s?wd=RequestProcessor&cl=3">http://www.baidu.com/s?wd=RequestProcessor&cl=3</A>
(3) <BR></SPAN>
<P></P></DIV></DIV>
<DIV></DIV></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></DIV>
<DIV class=license-nonprofit>This site is running on Atlassian <B><A
href="http://www.atlassian.com/c/conf/10137">Confluence</A></B> with a free
<B>Open Source Project / Non-profit License</B> (<A
href="http://www.atlassian.com/c/conf/10138">license details</A>).<BR><A
href="http://www.atlassian.com/c/conf/10137">Confluence</A> is professional
wiki, blog and knowledge management tool. <A
href="http://www.atlassian.com/c/conf/10137">Evaluate Confluence for your
organisation</A>.<BR></DIV>
<DIV class=bottomshadow></DIV>
<DIV class=smalltext id=poweredby>Powered by <A class=smalltext
href="http://www.atlassian.com/software/confluence/default.jsp?clicked=footer">Atlassian
Confluence</A> (Version: 1.3.5 Build:#122 Mar 01, 2005) - <A class=smalltext
href="http://jira.atlassian.com/secure/BrowseProject.jspa?id=10470">Bug/feature
request</A> - <A
href="http://www.javaworld.com.tw/confluence/administrators.action">Contact
Administrators</A> <BR></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -