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

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

Struts例子的設計分析

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

  Struts例子的設計分析
原作者:Ted Husted 翻譯:hatpdb

聲明:這是一個演示如何建立一個struts應用程序的框架例子。這種規范與細節的實現來源于一個一個的工程。可能與你所從事的項目框架非常不同,但是也許有些共通之處。為了寫更多的項目與軟件,看一個例子也許理解這個標題,包括在Tom DeMarco的《結構分析與系統描述》(ISBN 0138543801),Steve McConnell的《實現代碼》(ISBN 1556154844)。

Example application - Sample 描述
問題定義
解決方案
需求分析
核心任務
其他要求
屏幕流例子
歡迎頁
注冊頁
登陸頁
菜單項
帳號
帳號描述
退出頁
產品選擇
應用程序接口

--------------------------------------------------------------------------------

1.0 問題定義
許多人們有許多郵件服務器上的郵件帳號,但是有些人不能夠很好的治理這些多個帳號。私人和公眾郵件服務器的登陸入口通常只是答應自己的用戶能夠登陸。

--------------------------------------------------------------------------------

2.0 解決方案
這些問題可以通過網站的登陸程序來解決。這個程序能夠答應用戶通過網絡注冊一系列的任何網絡郵件服務器的郵件帳號與帳號的描述信息,同時也能夠重新察看他們。

--------------------------------------------------------------------------------

3. 0 需求分析
3.1 核心任務
用用戶名與用戶密碼注冊一個新帳號
通過瀏覽器登陸進入已經注冊的帳號
添加一個郵件帳號描述
察看一個郵件帳號的描述
退出登陸
3.2 其他需求
授權郵件服務器可以可以創建多個帳號。
帳號信息頁面不能顯示給沒有授權的用戶。
為了達到有廣泛的用戶群,這個程序應該能夠滿足使用不同語言的用戶。
我們應當能夠修改瀏覽的頁面而不用重新編譯應用程序。

--------------------------------------------------------------------------------

4.0 視圖流程
4.1歡迎頁面
注冊一個新帳號{ Register }
登陸已經注冊的帳號{ Login }
4.2 注冊
顯示注冊屬性表單;選項:保存,重設,和取消。

表單域: Username, PassWord, Password (confirm), Full Name, From Address, Reply To Address.
保存: 驗證表單屬性; 返回對用戶的建議或者是存儲顯示登陸成功后的菜單
驗證: 密碼與重復密碼必須相符合; 郵件的來源與回復地址都必須符合郵件地址的書寫規則(必須包含@符號),回復地址是可選項,其他的都不能夠為空同時還要符合其他的驗證規則,用戶名必須唯一。
假如注冊成功: { Menu }
假如注冊失敗: { Register }
重置: 恢復編輯的內容
取消: 跳轉到到 { Login. }
4.3 登陸
對登陸的用戶顯示表單信息,并且可以選擇“保存”或者“重置”等的操作。

表單: 用戶名(Username), 用戶密碼(Password)。
保存: 驗證登陸信息,二者都是必須的,同時必須與注冊時的信息相同(大小寫敏感)。
取消: 取消編輯
4.4 主菜單
添加/編輯(Add/Edit)帳號描述 { Account }.
退出 { Welcome }.
4.5 帳號
顯示表單編輯用戶注冊信息 (看 Register 視圖)。
列表顯示帳號的描述信息;可選項“編輯”或者“刪除”帳號的描述信息 { Subscription }.
列表必須包含主機名字與其他屬性(假如有多余的空間)
選擇“添加”(Add)新的帳號描述信息{ Subscription }.
4.6 帳號描述信息 - 添加(Add),編輯(Edit),刪除(Delete)
顯示帳號描述屬性的表單;可選項操作“添加”,“編輯”,“刪除”(Add, Edit, Delete)。

可選項“添加”(Add),“編輯”(Edit) 執行任務:保存,重置,取消(Save, Reset, Cancel)。
可選項“刪除”(Delete) 執行任務:“確認”,“取消”( Confirm, Cancel)。
表單域: 郵件主機(Mail Server), 用戶名(Mail Username), 密碼(Mail Password), 郵件服務器類型(Mail Server Type).
保存: 驗證帳號描述屬性;返回對用戶的建議或者顯示已經更新的帳號。
驗證表單域:自動連接也許返回為空(false),所有其他的屬性必須為非空。
假如保存成功:{ Account }。
假如保存失敗:{ Subscription }。
重置:取消編輯。
取消:返回 { Account } 視圖。
確認(刪除):確認刪除記錄;顯示更新的信息{ Account. }。
4.7 退出
讓用戶的登陸信息失效;返回到歡迎頁面。

--------------------------------------------------------------------------------

5. 0 產品選擇
我們選擇java的Struts框架來實現這個項目。

它的設計被描述為編寫輕易,可擴展的Web應用程序;
由于采用MVC模式,使應用程序輕易維護;
采用jsp來實現顯示部分,所有的修改操作都不需要重新編譯程序;
支持用戶通過Web程序自定義操作;
支持國際化應用程序。

--------------------------------------------------------------------------------

6.0 應用程序接口
6.1 屬性
標簽 組件 屬性 類型 規則 域Domain
Username User username String !null unique
Password User password String !null
Full Name User fullname String !null
From Address
User fromAddress String !null *@*
Reply To Address
User replyToAddress String  
- User subscriptions Hashtable  
Mail Server
Subscription host String !null unique
Mail Username
Subscription username String !null
Mail Password Subscription password String !null
Mail Server Type Subscription type String "imap","pop3"
Password (repeat) registrationForm password2 String !null
           

--------------------------------------------------------------------------------

6. 3 表單組件(Form Beans)
<form-beans>

<!-- Logon form bean 登陸表單組件-->
<form-bean name="logonForm"
type="org.apache.struts.example.LogonForm"/>

<!-- Registration form bean 注冊表單組件-->
<form-bean name="registrationForm"
type="org.apache.struts.example.RegistrationForm"/>

<!-- Subscription form bean 帳號描述組件-->
<form-bean name="subscriptionForm"
type="org.apache.struts.example.SubscriptionForm"/>

</form-beans>

--------------------------------------------------------------------------------

6.4 動作映射(Action Mappings)
6.4.1 核心執行任務映射例子
根據用戶名與密碼創建一個帳戶
鏈接到“editRegistration.do?action=Create”
提交表單到“actoin=saveRegistration.do”
日志信息到帳戶

打開“login.jsp” -- 輸入信息文件為“login.do ”
提交輸入表單從“action="logon.do" ”
添加郵件帳戶的描述信息

鏈接到"/editSubscription.do?action=Create&user={user}"
username = Username
提交輸入表單到"action="saveSubscription.do"
請參考linkUser 用戶自定義標記.
編輯帳號描述信息

鏈接到"editSubscription.do?action=Edit&username={user}&host={host}"
username = Username
host = Mail Server
讓改變與提交的到"saveSubscription.do"
用隱藏表單域:"action=Edit"
請參考linkSubscription 自定義標簽。
刪除帳號描述信息

鏈接到"editSubscription.do?action=Delete&username={user}&host={host}"
username = Username
host = Mail Server
讓用戶確認是否刪除,假如刪除提交到 action="saveSubscription.do"
用隱藏表單域:"action=Delete"
請參考linkSubscription 自定義標簽。
退出

鏈接到"/logoff.do"
頁面不許對沒有授權的用戶顯示。
請參考 checkLogin 自定義標簽。

--------------------------------------------------------------------------------

6.4.1 動作配置(Actual Configuration)
<action-mappings>

<!-- PRocess a user logon 處理用戶登陸-->
<action path="/logon"
type="org.apache.struts.example.LogonAction"
name="logonForm"
scope="request"
input="/logon.jsp">
</action>

<!-- Edit user registration 編輯用戶的注冊信息-->
<action path="/editRegistration"
type="org.apache.struts.example.EditRegistrationAction"
name="registrationForm"
scope="request"
validate="false">
<forward name="sUCcess" path="/registration.jsp"/>
</action>

<!-- Save user registration 保存用戶的注冊信息-->
<action path="/saveRegistration"
type="org.apache.struts.example.SaveRegistrationAction"
name="registrationForm"
scope="request"
input="/registration.jsp"/>

<!-- Edit mail subscription 編輯郵件帳號描述-->
<action path="/editSubscription"
type="org.apache.struts.example.EditSubscriptionAction"
name="subscriptionForm"
scope="request"
validate="false">
<forward name="failure" path="/mainMenu.jsp"/>
<forward name="success" path="/subscription.jsp"/>
</action>

<!-- Save mail subscription 保存郵件帳號描述-->
<forward name="success" path="/editRegistration.do?action=Edit"/>
</action>

<!-- Process a user logoff 處理用戶退出-->
<action path="/logoff"
type="org.apache.struts.example.LogoffAction">
<forward name="success" path="/index.jsp"/>
</action>

</action-mappings>

--------------------------------------------------------------------------------

6.3 自定義標簽
6.3.1 應用程序標簽
這個應用程序使用如下的自定義標簽用“app”作為標示名:

App 標簽- <%@ taglib uri="/WEB-INF/app.tld" prefix="app" %>

標簽名稱 描述
CheckLogin 檢查是否有合法的用戶登陸進入當前會話,假如沒有用戶的會話信息將會跳轉到登陸頁面。
LinkUser 產生URL編碼對路徑,包括用戶選擇的查詢參數。
LinkSubscription 產生URL編碼對路徑,包括用戶選擇的查詢參數。

--------------------------------------------------------------------------------
CheckLogin
屬性名稱 描述
沒有屬性

--------------------------------------------------------------------------------
LinkUser
屬性名稱 描述
page 包裝用戶信息到請求路徑,例如:"/editSubscription.do?action=Create".
包裝用戶帳號信息到請求路徑,例如:用戶名為“user”:
<a href="/struts-example/editSubscription.do?action=Create&username=user">

--------------------------------------------------------------------------------
LinkSubscription
屬性名稱 描述
page 用戶戶的動作描述值,例如:"/editSubscription.do?action=Edit".
包裝戶戶的動作描述值以及用戶帳號信息到請求路徑,例如:用戶名為“user”和描述帳號為"mail.yahoo.com"":
<a href="/struts-example/editSubscription.do?action=Edit&username=user&host=mail.yahoo.com">

--------------------------------------------------------------------------------

6.3.2 Struts自定義標簽
本應用程序使用以下Struts定義的標簽庫以及描述名:

Bean tags - <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
Html tags - <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
Logic tags - <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

--------------------------------------------------------------------------------

6.4 頁面的缺省動作
頁面 組件 動作
index.jsp None page="/editRegistration.do?action=Create"
page="/logon.jsp"

logon.jsp logonForm action="logon.do"
mainMenu.jsp user (session) page=/editRegistration.do?action=Edit"
page="/logoff.do"

registration.jsp user (session)
registrationForm action="saveRegistration.do"
page="/editSubscription.do?action=Delete"
page="/editSubscription.do?action=Edit"
page="/editSubscription.do?action=Create"
subscription.jsp user (session)
subscriptionForm action="saveSubscription.do"

--------------------------------------------------------------------------------

6.5 國際化
請參考< classes/org/apache/struts/example/ApplicationResource.properties >.

應用程序使用這個文件包含所有的錯誤描述,文字信息。

其他語言能夠通過翻譯這個文件來支持。

應用程序會自動選擇這個屬性文件來定位用戶所使用的語言。

--------------------------------------------------------------------------------

Ted Husted 是一個自由軟件者顧問于開發者培訓,代碼重構,和秘密的支持,要想獲得更多的信息請訪問網站 Husted dot Com 。

--------------------------------------------------------------------------------

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 虹口区| 尤溪县| 沅陵县| 额尔古纳市| 龙井市| 南郑县| 凯里市| 日照市| 保德县| 三明市| 奉新县| 焦作市| 湖北省| 上林县| 阳谷县| 衡南县| 五河县| 宁蒗| 蓬溪县| 寿宁县| 乾安县| 永胜县| 保靖县| 彩票| 开封市| 那曲县| 阿尔山市| 岐山县| 宝坻区| 江安县| 安岳县| 广南县| 儋州市| 邵阳县| 胶州市| 仙居县| 松桃| 咸宁市| 宽城| 南华县| 苏州市|