1. 程式人生 > >第三天:struts簡單模型案例:

第三天:struts簡單模型案例:

一、編寫步驟:

1、新建類ActionMapping 用於儲存配置檔案(struts.xml) 中的action節點的資訊  ----相當於javabean

2、新建類ResultMapping 用於儲存配置檔案(struts.xml) 中的result節點的資訊  ----相當於javabean

3、新建類ActionMappingManager  主要用於載入配置檔案 、對配置檔案進行一些操作 ,主要方法getActionByName是通過action節點屬性name的值進行查詢

4、編寫業務類 s實現加減乘除四則運算:CalBiz

5、編寫action介面

6、實現action介面,例項化業務類執行操作 :AddAction、PlusAction、MulAction、DivAction

7、編寫ActionManager 根據獲得的全類名動態建立物件   ;主要方法是:createAction(String actionClass)

8、編寫核心控制器ActionServlet  

//初始化載入方法

public void init() throws ServletException {

actionMappingManager=new ActionMappingManager();

}

String uri=request.getRequestURI();//獲得請求的uri地址

String actionName=uri.substring(uri.lastIndexOf("/")+1,uri.lastIndexOf("."));//擷取所需要的字串

ActionMapping actionMapping=actionMappingManager.getActionByName(actionName);//根據擷取後的地址查詢action節點相關資訊

String actionClass=actionMapping.getActionClass();//全類名

Action action=ActionManger.createAction(actionClass);//動態建立例項化物件

String resultName=action.execute(request, response);//返回邏輯名稱

ResultMapping resultMapping=actionMapping.getResultMap().get(resultName);//根據邏輯名稱查詢

String resultPath=resultMapping.getResultPa

v th();//得到跳轉的路勁

request.getRequestDispatcher(resultPath).forward(request, response);//成功跳轉

9、編寫jsp檔案  :index.jsp、success.jsp

10、執行測試

二、執行流程:

1、在位址列輸入--->http://localhost:8080/Struts2_Demo2/  訪問首頁

2、再文框中輸入值   num1和num2

3、執行跳轉被Servlet攔截,Servlet初始化載入  ActionMappingManager ---->ActionMappingManager 呼叫無慘構造  載入xml檔案

4、Servlet獲取uri地址並擷取相應的資訊

5、根據得到的資訊,呼叫方法活的需要載入的類的全類名稱

6、執行action中的execute方法跳轉的邏輯名稱

7、根據邏輯名稱呼叫方法獲得跳轉的路勁名稱

8、執行跳轉

相關推薦

struts簡單模型案例

一、編寫步驟: 1、新建類ActionMapping 用於儲存配置檔案(struts.xml) 中的action節點的資訊  ----相當於javabean 2、新建類ResultMapping 用於儲存配置檔案(struts.xml) 中的result節點的資訊  ---

實訓簡單的彩票系統(註冊資訊)

package wsq; import java.util.Scanner; //本檔案負責註冊使用者資訊 /* 使用者註冊資訊: 1.要求設定賬號和密碼,使用字串陣列 2.賬號名不能重複 3.密碼需要輸入兩次,兩次密碼輸入一致 4.滿足賬號名不重複

「七自制PHP框架」PHP實現的設計模式

爭論 框架 啟動 興趣 註意 end php imp close 往期回顧:「七天自制PHP框架」第二天:模型與數據庫,點擊此處 原文地址:http://www.cnblogs.com/sweng/p/6624845.html,歡迎關註:編程老頭 為什麽要使用設計模式?

ptyhon基礎知識

python一、認識Python1.Python發展歷史起源Python的作者,Guido von Rossum,荷蘭人。1982年,Guido從阿姆斯特丹大學獲得了數學和計算機碩士學位。然而,盡管他算得上是一位數學家,但他更加享受計算機帶來的樂趣。用他的話說,盡管擁有數學和計算機雙料資質,他總趨向於做計算機

XML&反射

xml一、XML1 什麽是XMLXML全稱為Extensible Markup Language,意思是可擴展的標記語言。XML語法上和HTML比較相似,但HTML中的元素是固定的,而XML的標簽是可以由用戶自定義的2、應用常見<1>配置文件<2>存放數據3、XML語法<1>

docker制作docker鏡像——手工制作docker鏡像

docker制作Docker鏡像的方式一般有兩種:手工制作和通過Dockerfile制作,此次講解的是手工制作docker鏡像。一、手動制作鏡像:用centos鏡像啟動容器:[root@VM_0_12_centos ~]# docker run -it centos bash 2. 在容器中安裝網絡管理工

python學習之路--一個簡單的腳本

tro 說明 .py else zipfile rect dylib 環境 cef 現在有一個需求:把某個目錄下的文件備份到指定到另外一個目錄下,而且壓縮後文件為zip文件 # -*- coding:utf-8 -*- #! /usr/bin/python # Filena

python 學習(簡單購物系統)2018.2.20

welcome class bic 繼續 please python else pre lease #_author_:"Bushii" #data:2018/2/20 print("*******************************") print("We

# 運維小白的成長日記-基礎網絡構建OSI七層模型與TCP/IP模型

網絡運維運維小白的成長日記第三天- 基礎網絡構建OSI七層模型與TCP/IP模型 網絡運維的小白和想要加入網絡運維的小夥伴們值得一看哦~今天是初識網絡運維的第三天。希望能有誌同道合的小夥伴一起討論和學習,也希望有網絡運維的大神能夠幫忙在網絡運維這條路上幫忙指點,能夠多提意見使我進步。 今天和大家分享一下基礎網

python學習數據類型,交互,格式化輸出,基本運算符

描述 浮點型 針對 none 多個 其中 輸入 是我 基本 數據類型 1.什麽是數據類型? 變量值才是我們存的數據,所以數據類型指的是變量值的種類 2.為何數據要分類? 變量值是用來保存現實世界中的狀態的,那麽針對不同的狀態,就應該用不同

Beta沖刺

ble idt info border 博客 進展 p s 圖片 第三天 beta沖刺:第三天 各個成員今日完成的任務 成員 馮曉、馬思遠 彭輝、王爽 吳瓊、郝延婷 今日完成任務 ·管理員管理功能模塊下角色管理功能的完善測試 ·角色和權限部分代碼規範 ·

MDN CSS學習筆記

匹配 har cascade dia add 規則設置 font-face 允許 樹形 一:CSS如何工作 1:DOM 當瀏覽器顯示文檔時,它必須將文檔的內容與其樣式信息結合。它分兩個階段處理文檔: 瀏覽器將 HTML 和 CSS 轉化成 DOM (文

numpy庫

PS: 這個好像是Python2.X版本的使用。 這個課件的numpy的介紹還是太少了,有點凌亂的感覺,要是後面還是要以《利用Python進行資料分析》做numpy和pandas課件筆記比較好。 要學會和掌握,通過實戰,但是至少要懂得numpy的方式。 一、numpy(numeric Python)

Cesium.js學習模型展示)

var viewer = new Cesium.Viewer('cs');viewer.scene.primitives.add(Cesium.Model.fromGltf({ url : '/Cesium-1.51/Specs/Data/Models/WEB3DQuantizedAttribute

Java基礎複習流程控制語句if()...else、switch() case、do while()、for迴圈()

  目錄 第一章 流程控制 1.流程控制的分類 2.死迴圈 3.跳出語句(迴圈控制語句) 4.巢狀迴圈 從下次開始,會盡量會直接懟上程式碼,減少文字 ----------------------------------------------------

事務管理 、 三大框架整合開發

事務管理 、 三大框架整合開發 目錄 一、Spring事務管理 1、 事務管理相關API 2、 PlatformTransactionManager 介面詳解 1) 不同平臺事務管理器實現 2) TransactionDefinition 事務隔離級別 3)

python學習python基礎(基礎資料型別和變數)

註釋 以  # 開頭的語句是註釋,如,註釋不會被編譯執行; 格式 當語句以冒號:結尾時,縮排的語句視為程式碼塊。按照約定俗成的管理,應該始終堅持使用4個空格的縮排(在文字編輯器中,需要設定把Tab自動轉換為4個空格,確保不混用Tab和空格)。 如,而其中這張圖中紅框框裡的是程式碼塊

shader講解 如何把圖片貼在模型

一、UV座標 特點:uV軸大小都是1,放圖片的時候就像這樣: 把第7個複製一份成8, 想渲染一張圖片,必須在片元函式裡面渲染  1.拿到圖片 2D 2在a2v裡面拿到   3.v2f: 4. 5. 片元函式裡面:    結果: 因為只貼到了漫

HibernateHibernate的一對多配置、Hibernate的多對多的配置

Hibernate第三天:Hibernate的一對多配置、Hibernate的多對多的配置   目錄 Hibernate第三天:Hibernate的一對多配置、Hibernate的多對多的配置 1 Hibernate的一對多關聯對映 1.1資料庫表與表之間的關係

使用wxpython製作計算器

#coding="utf-8" import wx # 這是程式碼: class get_the_data(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, -1, '丹丹計算器',