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

Struts入門--從原理到安裝及實例講解

2013-11-23 20:03:03  來源: Java開源技術 

   Struts的起源
  Struts是作為Apache Jakarta項目的組成部分該項目的目標是為建立Java web 應用程序而提供的一個開源框架目前大家一般使用的版本為但也出現了通過使用struts 框架可以改進和提高Java Server Pages (JSPs)Servlet標簽庫以及面向對象的技術在web應用程序中的應用應用Struts框架可以減少你應用MVC(Model View Controller)設計模式的開發時間從而提高開發效率把Struts應用於Jee客戶端應該是一個不錯的選擇
  
   Struts的工作原理
  談到Struts我們就不得不提到MVC設計模式MVC即ModelViewController的縮寫它是web應用當中的常用的設計模式MVC 減弱了業務邏輯接口和數據接口之間的耦合以及讓視圖層更富於變化
  Struts是MVC的一種實現它很好的結合了JspJava ServletJava Bean Taglib等技術那麼我們來看看Struts框架的工作原理
  控制在Struts中ActionServlet起著一個控制器(Controller)的作用ActionServlet是一個通用的控制組件這個控制組件提供了處理所有發送到Struts的HTTP請求的入口點它截取和分發這些請求到相應的動作類(這些動作類都是Action類的子類)另外控制組件也負責用相應的請求參數填充 Action Form(通常稱之為FromBean)並傳給動作類(通常稱之為ActionBean)動作類實現核心商業邏輯它可以訪問java bean 或調用EJB所有這些控制邏輯利用Strutsconfigxml文件來配置
  視圖主要是由Jsp來控制頁面輸出的它接收到Action Form中的數據利用htmltaglibbeanlogic等顯示數據
  模型在Struts中主要存在三種bean分別是ActionActionFormEJB或者Java BeanActionForm用來封裝客戶請求信息Action取得ActionForm中的數據再由EJB或者Java Bean進行處理
  
   Struts 優點與缺點
  優點利用Struts提供的taglib可以大大節約開發時間 表現與邏輯分離 維護擴展比較方便 便於團隊開發
  缺點大量的使用標簽對於初學者難度較大
  
   Struts 安裝
  安裝Struts 比較簡單假設我們使用的是Tomcat 並且安裝在D:\tomcat下首先請到 下載Struts 解壓縮後可以看到jakartastruts目錄在這個目錄下面你可以看到這樣一個目錄webapps該目錄下面有多個*war我們copy strutsblankwar 文件到D:\tomcat\webapps下restart Tomcat在Tomcat 的webapps下就會生成一個strutsblank空白Struts開發環境另外在你解壓縮的目錄下的webapps中 strutsexamplewar 是一個很好的struts學習教程如果你想深入學習請訪問 或者 下載 《Struts in Action》 E 文版
  
   一個簡單的例子
   Logonjsp
  <%@ taglib uri=/WEBINF/strutshtmltld prefix=html %>
  <%@ page contentType=text/html; charset=gb %>
  <%
  /**
  * This page shows Logon interface
  * Title: LOGON SYSTEM
  * Description: Logon Page
  * Copyright: Copyright (c)
  * Company:
  * @author bluesunny <>
  * @version
  */
  responsesetHeader(PragmaNocache);
  responsesetHeader(CacheControlnocache);
  responsesetDateHeader(Expires );
  %>
  <html>
  <head>
  <title>Logon</title>
  </head>
  <body>
  <html:errors/>
  <html:form action=/Logon focus=username>
  username:<html:text property=username size=/>
  password:<html:password property=password size=/>
  <html:submit property=submit/>
  </html:form>
  </body>
  </html>
  頁面為用戶登陸頁面應用到Struts的html標簽
   LogonFormjava
  package comlogonapp;
  import javaxservlethttp*;
  import orgapachestrutsaction*;
  /**
  * This page shows LogonFormjava
  * Title: LOGON SYSTEM
  * Description: LogonForm Page
  * Copyright: Copyright (c)
  * Company:
  * @author bluesunny
  * @version
  */
  public class LogonForm extends ActionForm{
  private String username;
  private String password;
  public LoginForm() {
  username = null;
  password = null;
  }
  public void setUsername(String username){
  thisusername = username;
  }
  public String getUsername() {
  return thisusername;
  }
  public void setPassword(String password){
  thispassword = password;
  }
  public String getPassword(){
  return thispassword;
  }
  public void reset(ActionMapping mapping HttpServletRequest request)
  {
  username = null;
  password = null;
  }
  }
  這個頁面為ActionForm bean 主要是用來封裝客戶端的用戶名與密碼
   LogonActionjava
  package comlogonapp;
  import javaio*;
  import javasql*;
  import orgapachestrutsactionAction;
  import orgapachestrutsactionActionForward;
  import orgapachestrutsactionActionMapping;
  import orgapachestrutsactionActionForm;
  import javaxservlet*;
  import javaxservlethttp*;
  import orgapachestrutsaction*;
  /**
  * This page shows LogonActionjava
  * Title: LOGON SYSTEM
  * Description: LogonAction Page
  * Copyright: Copyright (c)
  * Company:
  * @author bluesunny
  * @version
  */
  public class LogonAction extends Action{
  public ActionForward execute(ActionMapping actionMapping ActionForm actionForm HttpServletRequest request HttpServletResponse response)throws Exception{
  LogonForm form = (LogonForm)actionForm;
  ActionErrors errors = new ActionErrors();
  String username = formgetUsername();
  String password = formgetPassword();
  If(usernameequals(bluesunny) && passwordequals(bluesunny)){
  return actionMappingfindForward(success);
  }else{
  errorsadd(loginnew ActionError(Logonfailed));
  saveErrors(requesterrors);
  return actionMappingfindForward(failed);
  }
  }
  }
  取得ActionForm中的數據進行處理處理結果返回到Jsp頁面
   webxml
  <?xml version= encoding=ISO?>
  <!DOCTYPE webapp
  PUBLIC //Sun Microsystems Inc//DTD Web Application //EN
  app__dtd;>
  <webapp>
  <displayname>Struts Logon Application</displayname>
  <! Standard Action Servlet Configuration (with debugging) >
  <servlet>
  <servletname>action</servletname>
  <servletclass>orgapachestrutsactionActionServlet</servletclass>
  <initparam>
  <paramname>config</paramname>
  <paramvalue>/WEBINF/strutsconfigxml</paramvalue>
  </initparam>
  <initparam>
  <paramname>debug</paramname>
  <paramvalue></paramvalue>
  </initparam>
  <initparam>
  <paramname>detail</paramname>
  <paramvalue></paramvalue>
  </initparam>
  <loadonstartup></loadonstartup>
  </servlet>
  <! Standard Action Servlet Mapping >
  <servletmapping>
  <servletname>action</servletname>
  <urlpattern>*do</urlpattern>
  </servletmapping>
  <! The Welcome File List >
  <welcomefilelist>
  <welcomefile>logonjsp</welcomefile>
  </welcomefilelist>
  <! Struts Tag Library Descriptors >
  <taglib>
  <tagliburi>/tags/strutsbean</tagliburi>
  <tagliblocation>/WEBINF/strutsbeantld</tagliblocation>
  </taglib>
  <taglib>
  <tagliburi>/tags/strutshtml</tagliburi>
  <tagliblocation>/WEBINF/strutshtmltld</tagliblocation>
  </taglib>
  <taglib>
  <tagliburi>/tags/strutslogic</tagliburi>
  <tagliblocation>/WEBINF/strutslogictld</tagliblocation>
  </taglib>
  <tagli
From:http://tw.wingwit.com/Article/program/Java/ky/201311/27855.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.