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

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

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

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

  1. Struts的起源
  Struts是作為Apache Jakarta項目的組成部分。該項目的目標是為建立java web 應用程序而提供的一個開源框架,目前大家一般使用的版本為1.1,但也出現了1.2。通過使用struts 框架可以改進和提高Java Server Pages (jsps)、Servlet、標簽庫以及面向對象的技術在web應用程序中的應用。應用Struts框架可以減少你應用MVC(Model- View -Controller)設計模式的開發時間,從而提高開發效率。把Struts應用于J2ee客戶端,應該是一個不錯的選擇。
  
  2. Struts的工作原理
  談到Struts,我們就不得不提到MVC設計模式。MVC即Model-View-Controller的縮寫,它是web應用當中的常用的設計模式。MVC 減弱了業務邏輯接口和數據接口之間的耦合,以及讓視圖層更富于變化。
  Struts是MVC的一種實現,它很好的結合了Jsp,Java Servlet,Java Bean ,Taglib等技術。那么我們來看看Struts框架的工作原理:
  控制:在Struts中,ActionServlet起著一個控制器(Controller)的作用。ActionServlet是一個通用的控制組件。這個控制組件提供了處理所有發送到Struts的HTTP請求的入口點。它截取和分發這些請求到相應的動作類(這些動作類都是Action類的子類)。另外控制組件也負責用相應的請求參數填充 Action Form(通常稱之為FromBean),并傳給動作類(通常稱之為ActionBean)。動作類實現核心商業邏輯,它可以訪問java bean 或調用EJB。所有這些控制邏輯利用Struts-config.xml文件來配置。
  視圖:主要是由Jsp來控制頁面輸出的。它接收到Action Form中的數據,利用Html,taglib,bean,logic等顯示數據。
  模型:在Struts中,主要存在三種bean,分別是:Action,ActionForm,EJB或者Java Bean。ActionForm用來封裝客戶請求信息,Action取得ActionForm中的數據,再由EJB或者Java Bean進行處理。
  
  3 Struts 優點與缺點
  優點:1.利用Struts提供的taglib可以大大節約開發時間。2. 表現與邏輯分離。 3.維護擴展比較方便。 4 便于團隊開發
  缺點:大量的使用標簽,對于初學者難度較大。
  
  4. Struts 1.1 安裝
  安裝Struts 1.1 比較簡單。假設我們使用的是Tomcat 5.0,并且安裝在D:/tomcat下。首先,請到http://jakarta.apache.org/struts/ 下載Struts 1.1,解壓縮后,可以看到jakarta-struts-1.1目錄,在這個目錄下面,你可以看到這樣一個目錄:webapps.該目錄下面有多個*.war,我們copy struts-blank.war 文件到D:/tomcat/webapps下,restart Tomcat,在Tomcat 的webapps下就會生成一個struts-blank空白Struts開發環境。另外,在你解壓縮的目錄下的webapps中 struts-example.war 是一個很好的struts學習教程,假如你想深入學習請訪問http://jakarta.apache.org/struts 或者 下載 《Struts in Action》 E 文版。
  
  5. 一個簡單的例子
  5.1 Logon.jsp
  <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
  <%@ page contentType="text/html; charset=gb2312" %>
  <%
  /**
  * This page shows Logon interface.
  * Title: LOGON SYSTEM
  * Description: Logon Page
  * Copyright: Copyright (c) 2004
  * Company: www.ewe.com.cn
  * @author bluesunny <hyjun2001@163.com>
  * @version 1.0
  */
  response.setHeader("  response.setHeader("Cache-Control","no-cache");
  response.setDateHeader("EXPires", 0);
  %>
  <html>
  <head>
  <title>Logon</title>
  </head>
  <body>
  <html:errors/>
  <html:form action="/Logon" focus="username">
  username:<html:text property="username" size="25"/>
  passWord:<html:password property="password" size="25"/>
  <html:submit property=”submit”/>
  </html:form>
  </body>
  </html>
  頁面為用戶登陸頁面,應用到Struts的html標簽。
  5.2 LogonForm.java
  package com.logon.app;
  import javax.servlet.http.*;
  import org.apache.struts.action.*;
  /**
  * This page shows LogonForm.java
  * Title: LOGON SYSTEM
  * Description: LogonForm Page
  * Copyright: Copyright (c) 2004
  * Company: www.ewe.com.cn
  * @author bluesunny
  * @version 1.0
  */
  public class LogonForm extends ActionForm{
  private String username;
  private String pass
Word;
  public LoginForm() {
  username = null;
  password = null;
  }
  public void setUsername(String username){
  this.username = username;
  }
  public String getUsername() {
  return this.username;
  }
  public void setPassword(String password){
  this.password = password;
  }
  public String getPassword(){
  return this.password;
  }
  public void reset(ActionMapping mapping, HttpServletRequest request)
  {
  username = null;
  password = null;
  }
  }
  這個頁面為ActionForm bean ,主要是用來封裝客戶端的用戶名與密碼。
  5.3 LogonAction.java
  package com.logon.app;
  import java.io.*;
  import java.sql.*;
  import org.apache.struts.action.Action;
  import org.apache.struts.action.ActionForward;
  import org.apache.struts.action.ActionMapping;
  import org.apache.struts.action.ActionForm;
  import javax.servlet.*;
  import javax.servlet.http.*;
  import org.apache.struts.action.*;
  /**
  * This page shows LogonAction.java
  * Title: LOGON SYSTEM
  * Description: LogonAction Page
  * Copyright: Copyright (c) 2004
  * Company: www.ewe.com.cn
  * @author bluesunny
  * @version 1.0
  */
  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 = form.getUsername();
  String password = form.getPassword();
  If(username.equals(“bluesunny”) && password.equals(“bluesunny”)){
  return actionMapping.findForward("sUCcess");
  }else{
  errors.add("login",new ActionError("Logon.failed"));
  saveErrors(request,errors);
  return actionMapping.findForward("failed");
  }
  }
  }
  取得ActionForm中的數據,進行處理,處理結果返回到Jsp頁面。
  5.4 web.xml
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Web application 2.3//EN"
  "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd";>
  <web-app>
  <display-name>Struts Logon Application</display-name>
  <!-- Standard Action Servlet Configuration (with debugging) -->
  <servlet>
  <servlet-name>action</servlet-name>
  <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
  <init-param>
  <param-name>config</param-name>
  <param-value>/WEB-INF/struts-config.xml</param-value>
  </init-param>
  <init-param>
  <param-name>debug</param-name>
  <param-value>2</param-value>
  </init-param>
  <init-param>
  <param-name>detail</param-name>
  <param-value>2</param-value>
  </init-param>
  <load-on-startup>2</load-on-startup>
  </servlet>
  <!-- Standard Action Servlet Mapping -->
  <servlet-mapping>
  <servlet-name>action</servlet-name>
  <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <!-- The Welcome File List -->
  <welcome-file-list>
  <welcome-file>logon.jsp</welcome-file>
  </welcome-file-list>
  <!-- Struts Tag Library Descriptors -->
  <taglib>
  <taglib-uri>/tags/struts-bean</taglib-uri>
  <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
  </taglib>
  <taglib>
  <taglib-uri>/tags/struts-html</taglib-uri>
  <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
  </taglib>
  <taglib>
  <taglib-uri>/tags/struts-logic</taglib-uri>
  <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
  </taglib>
  <tagli

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 秀山| 玛多县| 恩施市| 通海县| 雅江县| 田阳县| 玉田县| 黑水县| 板桥市| 孟村| 齐齐哈尔市| 海盐县| 云梦县| 珲春市| 炎陵县| 土默特右旗| 霍林郭勒市| 石首市| 莒南县| 邯郸县| 轮台县| 浙江省| 嘉禾县| 洛浦县| 永嘉县| 威远县| 兰考县| 枣强县| 博乐市| 深圳市| 广德县| 安福县| 菏泽市| 青冈县| 康保县| 璧山县| 大安市| 临安市| 永修县| 桐柏县| 呼图壁县|