亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Struts模塊化編程經典實戰教程(三)

2019-11-18 12:55:39
字體:
來源:轉載
供稿:網友

  4、模塊定義
  通過上面對STRUTS的模塊化機制的講解,我們現在可以開始實現我們的模塊化例子程序了。
  
  4.1 Actionservlet參數
  
  我們在struts的web.xml中定義模塊。下面的代碼定義了三個模塊:缺省模塊,apPRoval和registration模塊,前綴分別是””,/approval和/registration。
  
  
  
    action
    org.apache.struts.action.ActionServlet
    
      config
      /WEB-INF/struts-config.xml
          

    
      config/approval
      /WEB-INF/struts-config-approval.xml
          

    
      config/registration
      /WEB-INF/struts-config-registration.xml
    

  
     1
      
  
    action
    *.do
      

  

  
  這樣在初始化actionservlet的過程中,servletcontext的屬性中就會有這樣的屬性鍵/值關系:
  
Struts模塊化編程經典實戰教程(三)

  4.2 approval模塊配置文件
  
  下面是approval模塊的配置文件,定義了form和action,以及相應的forward。
  
  
                 DTD Struts Configuration 1.1//EN"
  "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
  
    
    
    

      

   
          attribute="approvalForm"
      name="approvalForm"
      input="/index.jsp"
      path="/approval"
      scope="request"
      type="com.i505.struts.approval.action.ApprovalAction">
      
    
  
  

  
  4.3 registration模塊配置文件
  
  下面是registration模塊的配置文件,定義了form和action,以及相應的message-resources和forward。
  
  
                 DTD Struts Configuration 1.1//EN"
  "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
  
  
    
      

   
          attribute="registrationForm"
      input="/index.jsp"
      name="registrationForm"
      path="/registration"
      type="com.i505.struts.registration.action.RegistrationAction">
      
    
  
  
  

  
  5、模塊選擇
  本節主要講述struts中如何選擇模塊,實現模塊的真正運作的。
  
  5.1 action的模塊選擇
  
  當我們在瀏覽器中使用http://hostaddress/contextpath/module/action.do式樣的的url時,actionservlet會根據module選擇模塊對象,下面是actionservlet處理http請求的代碼:
  
  protected void process(HttpServletRequest request,
              HttpServletResponse response)
    throws IOException, ServletException {
    RequestUtils.selectModule(request, getServletContext());
       getRequestProcessor(getModuleConfig(request)).process
      (request, response);
  }
  
  RequestUtils.selectModule函數將使用下面的代碼把url中的模塊前綴(下面代碼的prefix將代表上面url式樣中的/module)指定的模塊對象保存在request屬性中,這個模塊對象就成了處理這個請求的當前模塊對象:
  
  // EXPose the resources for this module
    ModuleConfig config = (ModuleConfig)
   context.getAttribute(Globals.MODULE_KEY + prefix);
    if (config != null) {
      request.setAttribute(Globals.MODULE_KEY, config);
    }
   else {
      request.removeAttribute(Globals.MODULE_KEY);
    }
  
  5.2 資源的模塊化
  
  資源(比如jsp)的模塊化是指資源可以按照模塊一樣來組織,比如approval模塊的資源可以放在approval目錄下,而registration模塊的資源則放在registration目錄下,缺省模塊的資源放在webroot下。
  
  url訪問這些資源很簡單,url式樣是 http://hostaddress/contextpath/module/xxx.jsp。對于input和forward訪問這些資源,我們只需直接寫相對于模塊路徑下的路徑,注重它們必須以”/”開頭。假如forward是相對servletcontext的,則要加上模塊路徑。
  
  
          attribute="registrationForm"
      input="/index.jsp"
      name="registrationForm"
      path="/registration"
      type="com.i505.struts.registration.action.RegistrationAction">
      
    
  
  
  5.3 Formtag中表單action url的生成
  
  對于模塊編程,struts在formtag的action屬性似乎有些問題,這些問題出現在struts沒有考慮直接訪問jsp時的情況。應為forward和直接訪問這兩種環境是不同的,主要是直接訪問這些JSP,request屬性中沒有模塊對象,而forward訪問這些jsp時request屬性中有模塊對象。我們需要修改代碼,使得在產生action屬性時不受jsp所在環境的影響,也就是我們將在formtag的action屬性中指定模塊,而不是request中得到模塊。下面是registration模塊的index.jsp的代碼,它的formtag的action屬性包括了模塊的前綴/registration:
  
  <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
   <%@ taglib uri="/WEB-INF/struts-Html.tld" prefix="html"%>
  
  申請注冊
  <%@ page contentType="text/html;charset=GB2312" %>
  
  
  
   姓名:


   年齡:


  
  

  
  
  
  下面我們來修改struts的相關代碼達到這個效果。
  
  5.3.1 Formtag
  
  Formtag的setAction將識別form tag的acton屬性的module前綴,并分離出真正的模塊相對的action路徑,lookup將直接從ServletContext中獲取模塊配置對象。
  
  private String getActionPath(String action) {
   String temp = action.trim();
   String x;
        int pos=0;
   if(!temp.startsWith("/")) temp = "/"+ temp;
   pos = temp.indexOf("/", 1);
   if(pos<=0) return action;
  
         return temp.substring(pos); }
  private String getModulePrefix(String action) {
   String result;
   int pos;
   String temp=action.trim();
   if(!temp.startsWith("/")) {
   temp= "/"+temp;
   }
   pos = temp.indexOf("/", 1);
   if(pos<=1) return "";
   else
    re

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产做受69高潮| 国产综合香蕉五月婷在线| 影音先锋日韩有码| 国产一区二区三区直播精品电影| 深夜福利日韩在线看| www.欧美三级电影.com| 日韩中文字幕久久| 国产精品极品美女粉嫩高清在线| 最近2019年日本中文免费字幕| 久操成人在线视频| 2019亚洲男人天堂| 91在线免费视频| 国产精品999999| 国产精品久久久一区| 国产精品视频精品| 国产精品美女网站| 欧美剧在线观看| 欧美国产日韩免费| 国内精品久久久久| 成人国产精品免费视频| 亚洲欧美一区二区三区久久| 精品露脸国产偷人在视频| 亚洲精品欧美极品| 中文字幕日韩av电影| 精品国产一区二区三区久久狼5月| 久久久久久噜噜噜久久久精品| 欧美性猛交xxxx乱大交蜜桃| 午夜免费日韩视频| 亚洲最新中文字幕| 国产网站欧美日韩免费精品在线观看| 亚洲欧美日韩精品久久奇米色影视| 欧美亚洲成人精品| 91久久精品久久国产性色也91| 国语自产精品视频在免费| 日本精品性网站在线观看| 欧美国产日韩一区二区三区| 欧美成人精品一区| 亚洲精品成人久久久| 91在线观看免费高清完整版在线观看| 亚洲第一二三四五区| 亚洲欧美日韩精品久久亚洲区| 亚洲视频在线观看| 韩国三级日本三级少妇99| 97在线日本国产| 国模吧一区二区三区| 亚洲国产精品成人va在线观看| 国产午夜精品全部视频在线播放| 欧美成人黑人xx视频免费观看| 久久高清视频免费| 欧美午夜精品久久久久久浪潮| 日韩av在线播放资源| 91精品91久久久久久| 亚洲国产精品悠悠久久琪琪| 久久久久久噜噜噜久久久精品| 久久久国产一区二区三区| 国产精品白丝jk喷水视频一区| 欧美日韩精品在线视频| 日韩在线播放一区| 成人免费黄色网| 91精品久久久久久久久久久久久久| 国产女人18毛片水18精品| 成人字幕网zmw| 亚洲精品日产aⅴ| 一夜七次郎国产精品亚洲| 亲爱的老师9免费观看全集电视剧| 美女福利精品视频| 亚洲女在线观看| 久久久久久久爱| 九九热这里只有精品6| 国内偷自视频区视频综合| 久久国产精品久久久久久| 亚洲伦理中文字幕| 欧美精品成人91久久久久久久| 国内精品一区二区三区四区| 亚洲影视九九影院在线观看| 久久国产视频网站| 亚洲欧洲国产精品| 一区二区三区国产在线观看| 欧美性感美女h网站在线观看免费| 亚洲第一精品夜夜躁人人爽| 欧美专区中文字幕| 欧美日韩亚洲91| 成人女保姆的销魂服务| 日韩中文字幕久久| 精品少妇v888av| 久久久精品视频成人| 尤物九九久久国产精品的分类| 国产精品免费视频xxxx| 亚洲自拍中文字幕| 欧美国产日韩免费| 久久的精品视频| 久久影视电视剧免费网站清宫辞电视| 高清亚洲成在人网站天堂| 欧美丝袜一区二区三区| 日本精品久久电影| 91精品国产九九九久久久亚洲| 91精品国产综合久久香蕉922| 欧美精品在线免费播放| 色中色综合影院手机版在线观看| 亚洲成人久久网| 久久久久久久久久久亚洲| 色偷偷888欧美精品久久久| 97久久精品人搡人人玩| 日韩大陆欧美高清视频区| 国产男人精品视频| 国产精品激情自拍| 亚洲欧美另类国产| 欧美极品xxxx| 日韩欧美aaa| 国产精品美女主播| 欧美日韩在线观看视频小说| 亚洲精品成人久久| 久久久久久国产| 97不卡在线视频| 136fldh精品导航福利| 国产精品观看在线亚洲人成网| 久久亚洲精品国产亚洲老地址| 国产精品久久久| 久久久视频在线| 日韩高清电影好看的电视剧电影| 国产日韩欧美在线| 成人一区二区电影| 国产精品网站视频| 久久天天躁狠狠躁老女人| 亚洲二区中文字幕| 亚洲理论片在线观看| 久久国产天堂福利天堂| 日本精品性网站在线观看| 国产欧美日韩精品丝袜高跟鞋| 欧美亚洲免费电影| www亚洲欧美| 成人精品aaaa网站| 国产精品成人观看视频国产奇米| 另类专区欧美制服同性| 国产亚洲欧美日韩美女| 爱福利视频一区| 精品欧美国产一区二区三区| 欧美极品少妇xxxxⅹ免费视频| 红桃av永久久久| 国模视频一区二区三区| 成人av资源在线播放| 亚洲国产天堂网精品网站| 成人黄色在线观看| 国产精品美女主播在线观看纯欲| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲永久在线观看| 亚洲国内精品视频| 中文字幕久精品免费视频| 国产欧美日韩91| 色yeye香蕉凹凸一区二区av| 欧美高清videos高潮hd| 91九色视频在线| 欧美精品www| 亚洲精品国产suv| 国产亚洲欧美日韩精品| 在线观看国产精品日韩av| 日韩精品一区二区视频| 欧美性极品少妇精品网站| 最新亚洲国产精品| 欧美午夜久久久| 国产精品海角社区在线观看| 精品视频一区在线视频| 九九热精品在线| 精品久久久久久久久久久久|