国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

Struts應用程序的流程控制簡介

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

  在為你的第一個Struts應用程序建立了部署描述符后(根據該系列第一部分所講述的內容),你可能想知道ActionServlet實例是如何控制程序流程并采取相應的action的。這是個很好的問題,因為在一個非Struts Model 2應用程序中,你通常在控制器servlet中根據許多預定義的字符串寫一系列if…else語句與一個URL匹配。一旦找到匹配的URL,控制器servlet就可以執行一個action或發送控制指令了。因為你自己不編寫控制器servlet,所以你可能想知道如何去治理你的Struts應用程序的流程控制。
  
  下面我們對此進行具體的講述。在Struts中,每個URL模式都映射到一個叫做action object的不同的對象。而且,每個action object都是org.apache.struts.action.Action類的一個子類的實例。(這個類的最重要的方法是execute,我很快會講到。)
  
  Struts運用一個配置文件struts-config.XML(見列表1),缺省情況下它位于WEB-INF目錄下。這個XML文件必須包含一個<action-mappings>標簽,它用來將一個路徑映射到一個action object。
  
  配置文件告訴ActionServlet,假如路徑等于/login(即假如URL是以“login.do”結尾的),那么就必須實例化com.javaPRo.struts.LoginAction對象(假如它還沒有被實例化的話),而且執行它的execute方法。假如路徑等于/logout,那么就調用com.javapro.struts.LogoutAction實例的execute方法,等等。
  
  Action包含三個子類,LoginAction、LogoutAction和ViewSecretAction(見列表2、3和4)。在這三個action類中,Action類的execute方法已經被重載了。定義如下:public org.apache.struts.action.ActionForward
     execute(
   org.apache.struts.action.ActionMapping mapping,
   org.apache.struts.action.ActionForm form,
   javax.servlet.http.HttpServletRequest request,
   javax.servlet.http.HttpServletResponse response)
   throws Exception
  
  注重該方法返回一個ActionForward對象,它有四個參數,其中有兩個分別是ActionMapping和ActionForm對象。為了簡單起見,我在這三個action類中沒有用ActionForm和ActionMapping參數,而是返回空值作為替代。Struts領域的專家可能不贊成我的這種做法,但我們必須從簡單的做起吧。(我將在該系列的第三部分講述ActionForward,在第四和第五部分講述ActionForm和ActionMapping。)
  
  在LoginAction類中,execute方法首先從請求對象得到userName和密碼。假如userName是“john”,密碼是“123”,那么我們就可以成功登錄了。在成功登錄時,它會用一個RequestDispatcher對象把請求引導到mainMenu.jsp頁面。假如登錄失敗,它就把請求引導到login.jsp頁面。
  
  假如用戶的session對象還沒有失效,那么LogoutAction類中的execute方法就會使其失效,使用戶回到Login頁面。
  
  ViewSecretAction類的execute方法將用戶引導到viewSecret.jsp頁面。
  
  應用程序的視圖包含三個簡單的JSP頁面:login.jsp、mainMenu.jsp和viewSecret.jsp(見列表5、6和7)。注重,mainMenu.jsp和viewSecret.jsp在顯示其內容前都會檢查用戶的session 對象。
  
  完整的應用程序包含兩個配置文件(web.xml和struts-config.xml)、三個視圖( login.jsp、mainMenu.jsp和viewSecret.jsp)和三個action類(LoginAction、LogoutAction和ViewSecret)。
  
  執行下面的步驟來編譯.java文件: 1. 將目錄改變成應用程序目錄下的WEB-INF/類目錄。
   2. 你需要類路徑中的struts.jar和servlet.jar文件來編譯。在Tomcat中,可以用下面的語句:javac -classpath
  ../../../../common/lib/servlet.jar;../lib/
  struts.jar com/javapro/struts/*.java
  
  3. 重啟你的Web容器來運行應用程序,將瀏覽器指向http://domain/myStrutsApp1/。(假如你在本地機器的8080端口上運行應用程序,運用http://localhost:8080/myStrutsapp1/。)
  
  現在你就完成了一個簡單的、可以運行的Struts應用程序了。它運用了Struts的許多類中的兩個類:ActionServlet和Action。但它并沒有用Struts標簽庫,它通過“寫死”一些值以及在JSP文件中寫代碼使文件數量減少到最小。在本系列文章的第三部分中,我將更具體地講述ActionServlet和Action類,并介紹ActionForward類。我還將修改現有的應用程序,運用更多的Struts類,幫助你不斷取得進步,成為一名中級水平的Struts程序員。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东方市| 泗洪县| 军事| 嘉荫县| 广安市| 瓮安县| 思南县| 江西省| 禄丰县| 聊城市| 嵩明县| 宁城县| 于都县| 佛冈县| 临武县| 京山县| 濮阳市| 汶上县| 泰安市| 永宁县| 邢台县| 峨边| 枣阳市| 阿合奇县| 漯河市| 蒲江县| 闻喜县| 金阳县| 石景山区| 长垣县| 墨脱县| 巨鹿县| 清苑县| 阆中市| 旬邑县| 瓮安县| 同德县| 邮箱| 伊春市| 铜鼓县| 汝城县|