熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

struts分發請求的過程與相關配置

2022-06-13   來源: Java開源技術 

  


  /_struts分發請求的過程與相關配置

  按照mvc模式設計出的web層框架其實就是一個大大的servlet

  我們可以在webxml文件中將符合某種特征所有請求交給這個Servlet處理

  這個servlet再參照一個配置文件(strutsconfigxml)將各個請求分配給不同的action去處理

  根據struts提供的例子




[html] Java/UploadFiles_//gif); BORDERBOTTOMSTYLE: none; PADDINGBOTTOM: px; BORDERRIGHTSTYLE: none; TEXTINDENT: px; MARGIN: px px px px; PADDINGLEFT: px; WIDTH: px; PADDINGRIGHT: px; DISPLAY: inlineblock; BACKGROUNDPOSITION: % %; BORDERTOPSTYLE: none; HEIGHT: px; COLOR: rgb(); FONTSIZE: px; BORDERLEFTSTYLE: none; TEXTDECORATION: none; PADDINGTOP: px class=ViewSource title=view plain >view plainJava/UploadFiles_//gif); BORDERBOTTOMSTYLE: none; PADDINGBOTTOM: px; BORDERRIGHTSTYLE: none; TEXTINDENT: px; MARGIN: px px px px; PADDINGLEFT: px; WIDTH: px; PADDINGRIGHT: px; DISPLAY: inlineblock; BACKGROUNDPOSITION: % %; BORDERTOPSTYLE: none; HEIGHT: px; COLOR: rgb(); FONTSIZE: px; BORDERLEFTSTYLE: none; TEXTDECORATION: none; PADDINGTOP: px class=CopyToClipboard title=copy >copy
    xml>
    <form id=LogonForm method=post action=/strutsmailreader/SubmitLogondo;  
    jsessionid=FADEABCEFBFFDFDCAAA onsubmit=return validateLogonForm(this);>  
          

  查看源代碼後知道提交後交給/SubmitLogondo
    在webxml文件中查找/SubmitLogondo沒有找到有通配符*do




[html] view plaincopy
    xml>
    <! Action Servlet Configuration >  
        <servlet>
            <servletname>action</servletname>  
            <servletclass>orgapachestrutsactionActionServlet</servletclass>  
            <initparam>  
                <paramname>config</paramname>  
                <paramvalue>/WEBINF/strutsconfigxml</paramvalue>  
            </initparam>   
            <loadonstartup></loadonstartup>  
       </servlet>  
      
        <! Action Servlet Mapping >  
        <servletmapping>  
            <servletname>action</servletname>  
            <urlpattern>*do</urlpattern>  
        </servletmapping>  

  action對應一個叫ActionServlet的類
    查詢strutsconfigxml中/SubmitLogon不能加do後綴名可以改變




[html] view plaincopy
    xml>
    <! Process a user logon >  
         <action  
                   path=/SubmitLogon  
                   type=orgapachestrutsappsmailreaderactionsLogonAction  
                   name=LogonForm  
                   scope=request  
                   cancellable=true  
                   validate=true  
                   input=Logon>  
               <exception  
                       key=expiredpassword  
                       type=orgapachestrutsappsmailreaderdaoExpiredPasswordException  
                      path=/ChangePassworddo/>  
               <forward  
                       name=Success  
                       path=/MainMenudo/>  
           </action>  

    而注冊頁面的轉到/SaveRegistrationdo卻找不到有*號通配符防止膨脹
    <action path=//BaseAction
    input=Input
    type=orgapachestrutsappsmailreaderactions{}Action
    name={}Form
    scope=request>
    <forward
    name=Success
    path=/{}jsp/>
    <forward
    name=Input
    path=/{}jsp/>
    </action>
    <action
    path=/Save*
    extends=//BaseAction
    parameter=Save
    cancellable=true
    validate=true>  //是否需要校驗
    <forward
    name=Success
    path=/MainMenudo/>
    </action>
    _struts封裝請求參數的過程與相關配置
    將參數封裝成formbean對象(就是一個java類)這個類的每一個屬性對應一個請求參數Formbean有一個validata的方法

  <fp src=http://imgeducitycn/img_///gif>


From:http://tw.wingwit.com/Article/program/Java/ky/201311/28320.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.