1什麼是值棧html
(1)action和servlet區別java
2 如何獲取值棧對象程序員
3 值棧內部結構spring
(1)root和context數據庫
4 向值棧放數據編程
(1)向值棧放字符串設計模式
(2)向值棧放對象session
(3)向值棧放list集合框架
5 從值棧獲取數據ssh
(1)從值棧獲取字符串
(2)從值棧獲取對象
<s:property>
(3)從值棧獲取list集合
<s:iterator>
6 EL表達式獲取值棧數據
(1)加強request裏面getAttribute方法
7 ognl表達式 #、%使用
1 攔截器概述
2 攔截器底層原理
3 過濾器和攔截器區別
4 自定義登陸攔截器
5 struts2標籤庫(會用)
6 struts2表單標籤
1 struts2是框架,封裝了不少的功能,struts2裏面封裝的功能都是在攔截器裏面
2 struts2裏面封裝了不少的功能,有不少攔截器,不是每次這些攔截器都執行,每次執行默認的攔截器
3 struts2裏面默認攔截器位置
4 攔截器在何時執行?
(1)在action對象建立以後,action的方法執行以前
1 攔截器底層使用兩個原理
第一個 aop思想
(0)後面在spring裏面把aop作更深層次分析
(1)文字描述:
Aop是面向切面(方面)編程,有基本功能,擴展功能,不經過修改源代碼方式擴展功能
(2)畫圖分析:
第二個 責任鏈模式
(1)在java中有不少的設計模式,責任鏈模式是其中的一種
(2)責任鏈模式和過濾鏈很類似的
責任鏈模式:
要執行多個操做,有添加、修改、刪除三個操做。
首先執行添加操做,添加操做執行以後 作相似於放行操做,執行修改操做,修改操做執行以後作相似於放行操做,執行刪除操做
過濾鏈:一個請求可有多個過濾器進行過濾,每一個過濾器只有作放行才能到下一個過濾器
2 aop思想和責任鏈模式如何應用到攔截器裏面?
(1)文字描述:
- 攔截器在action對象建立以後,action的方法執行以前執行
- 在action方法執行以前執行默認攔截器,執行過程使用aop思想,在action沒有直接調用攔截器的方法,使用配置文件方式進行操做
- 在執行攔截器時候,執行不少的攔截器,這個過程使用責任鏈模式
-- 假如執行三個攔截器,執行攔截器1,執行攔截器1以後作放行操做,執行攔截器2,執行攔截器2以後作放行,執行攔截器3,執行攔截器3以後放行,執行action的方法
(2)畫圖分析
3 查看源代碼
(1)執行action
(2)建立action對象,使用動態代理方式
(3)執行action的方法
(4)執行不少的攔截器,遍歷執行
相似於放行的操做的方法
1 過濾器和攔截器區別
(1)過濾器:過濾器理論上能夠任意內容,好比html、jsp、servlet、圖片路徑
(2)攔截器:攔截器只能夠攔截action
2 Servlet和action區別
(1)servlet默認第一次訪問時候建立,建立一次,單實例對象
(2)action每次訪問時候建立,建立屢次,多實例對象
1 在struts2裏面有不少的攔截器,這些攔截器是struts2封裝的功能,可是在實際開發中,struts2裏面的攔截器中能夠沒有要使用的功能,這個時候須要本身寫攔截器實現功能
2 攔截器結構
(1)查看源代碼看攔截器結構
- 繼承類
在接口裏面有三個方法
: 初始化操做
:銷燬
:攔截邏輯的操做
(2)開發中,建議使用另一種方式
- 寫類,繼承 MethodFilterInterceptor類實現
-- 讓action裏面某個的方法不進行攔截
(3)讓攔截器和action有關係
- 不是在action調用攔截器的方法,而是經過配置文件方式讓創建關係
1 需求:在項目中,有不少的action的超連接,實現只有是登陸的狀態,才能夠點擊action的超連接實現功能,若是不是登陸狀態,點擊action超連接返回到登陸頁面
2 登陸的狀態:使用session域對象實現
(1)登陸成功以後,把數據放到session裏面
(2)判斷session是否有值,能夠知道是不是登陸狀態
3 實現登陸的基本功能
(1)查詢數據庫判斷用戶名和密碼(做業)
4 添加登陸攔截器功能
(1)判斷是否登陸:判斷session裏面是否有名稱是username的值
(2)攔截器實現過程
第一步 建立類,繼承MethodFilterInterceptor類
第二步 重寫MethodFilterInterceptor類裏面的方法寫攔截器邏輯
第三步 配置action和攔截器關係(註冊攔截器)
(1)在要攔截的action標籤所在的package標籤裏面聲明攔截器
(2)在具體的action標籤裏面使用聲明的攔截器
(3)struts2裏面執行不少的默認攔截器,可是若是在action裏面配置自定義攔截器,
問題:默認的攔截器不會執行了
解決:把默認攔截器手動使用一次
5配置攔截器,對action裏面全部的方法都進行攔截
(1)在action裏面有login的登陸的方法,這個方法不須要攔截,若是這個方法都攔截,問題是,永遠登陸不進去了
(2)解決:讓login方法不進行攔截
- 直接經過配置方式讓action裏面某些方法不進行攔截
6 若是登陸狀態,直接到功能頁面,若是不是登陸顯示登錄頁面
登陸以後出現小問題:
(1)設置打開位置,在form標籤裏面
0 struts2標籤使用jsp頁面中
1 s:property: 和ognl表達式在jsp頁面中獲取值棧數據
2 s:iterator: 獲取值棧list集合數據,表示list集合
3 s:debug: 查看值棧結構和數據
1 html表單標籤
(1)form : action、method、enctype
(2)輸入項
- 大部分在input裏面封裝 type=」值」
- text:普通輸入項
- password:密碼輸入項
- radio:單選輸入項
- checkbox:複選輸入項
- file:文件上傳項
- hidden:隱藏項
- button:普通按鈕
- submit:提交按鈕
- image:圖片提交
- reset:重置
- select:下拉輸入項
- textarea:文本域
2 在struts2裏面對應html表單標籤大部分都有
放到ssh練習中講到
1 struts2文件上傳
2 錯誤處理機制 input
1 Action
(1)action建立(繼承ActionSupport類)
(2)配置訪問action的方法(通配符)
(3)action獲取表單數據
- 模型驅動
(4)action操做域對象
(5)result標籤裏面type屬性
2 值棧
(1)值棧結構
(2)向值棧放數據
(3)從值棧獲取數據
3 攔截器
(1)攔截器原理
(2)自定義攔截器
- 繼承類
- 寫攔截器邏輯
- 配置攔截器
-- 配置讓action某些方法不進行攔截
參考資料:
《黑馬程序員》