在前一篇文章中,我們詳細的介紹了Struts 1.1 的工作原理,接著將會介紹它的安裝,以及一個具體的應用。 1. Struts 1.1 安裝 安裝Struts 1.1 比較簡單。假設我們使用的是Tomcat 5.0,並且安裝在D: omcat下。首先,請到http://jakarta.apache.org/struts/ 下載Struts 1.1,解壓縮後,可以看到jakarta-struts-1.1目錄,在這個目錄下面,你可以看到這樣一個目錄:webapps.該目錄下面有多個*.war,我們copy struts-blank.war 文件到D: omcatwebapps下,restart Tomcat,在Tomcat 的webapps下就會生成一個struts-blank空白Struts開發環境。另外,在你解壓縮的目錄下的webapps中 struts-example.war 是一個很好的struts學習教程,如果你想深入學習請訪問http://jakarta.apache.org/struts 或者 下載 《Struts in Action》 E 文版。 2. 一個簡單的例子 2.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("Pragma","No-cache"); 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標籤。 2.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 password; 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 ,主要是用來封裝客戶端的用戶名與密碼。 2.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頁面。 2.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> <taglib> <taglib-uri>/tags/struts-nested</taglib-uri> <taglib-location>/WEB-INF/struts-nested.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-tiles</taglib-uri> <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location> </taglib> </web-app>
2.5 struts-config.xml <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"> <struts-config> <form-beans> <form-bean name="logonForm" type=" com.logon.app.LoginForm"/> </form-beans> <action-mappings> <action path="/Logon" type="com.logon.app.LogonAction" name="logonForm" scope="request" input="Logon.jsp"> <forward name="success" path="/success.jsp"/> <forward name="failure" path="/Logon.jsp"/> </action> <message-resources parameter="resources.application"/> </struts-config> 2.6 application.properties Logon.failed = Logon failed!Please Logon in again!
2.7 deploy Logon Application 創建一個success.jsp,輸入:"successflly!". 編譯源文件,並且把該應用程序部署在TOMCAT裡,假設部署在app目錄下面。我們可以啟動瀏覽器訪問:http://localhost:8080/app/. 2.8 目錄結構 /WEB-INF : / WEB-INF/lib : Struts.jar / WEB-INF/classes : / WEB-INF/classes/com/logon/app : *.class / WEB-INF/classes/resources : *.properties
3. 總結 本文詳細講解了安裝方法,並且舉了一個登陸例子作為Struts框架應用。另外,本文對Struts的目錄結構也有說明,這大大減輕了初學者學習負擔,應該可以作為Struts入門之用。
|
|