Struts2學習筆記(五) 訪問servlet的api的三種方式

方法1:完全解耦和的方式訪問

簡介:解耦和也就是說在action中,沒有像servlet那樣,傳遞過來的參數中有request和response這兩個對象可以直接使用,action中沒有任何參數。但很多時候我們又需要使用這兩個對象,所以我們需要學習在action如何使用這兩個對象。這時我們可以使用action中的ActionContext對象,但是它也有侷限性就是隻能對域中的數據進行操作,而不能獲取到真正的對象。例如它可以向session中存值取值,但是它不能使用session的方法,如getSessionID()等。

使用方法如下所示:

  1. 首先我們創建一個類繼承ActionSupport,其他的代碼如下圖所示
    在這裏插入圖片描述
  2. 我們編寫兩個jsp頁面進行驗證,一個頁面爲表單用來驗證是否可以取出提交的參數,另一個爲成功後跳轉的頁面,使用jstl標籤來展示從域中取到的值。
    在這裏插入圖片描述
    在這裏插入圖片描述
  3. 運行程序,進行驗證。這裏對於struts的配置就不再講解,如果對於struts的配置不清楚可以去看我前面的博客。可以看到控制檯已經成功打印出了我輸入的內容,並且成功頁面中也顯示出了我存在域中的值。
    在這裏插入圖片描述
    在這裏插入圖片描述

方法2:使用原生方法

簡介:和servlet中一樣,前較於第一種方法它既可以操作數據,又可以使用對象的方法。

使用方法如下所示:

  1. 首先我們創建一個類繼承ActionSupport,其他的代碼如下圖所示
    在這裏插入圖片描述
  2. 我們編寫兩個jsp頁面進行驗證,一個頁面爲表單用來驗證是否可以取出提交的參數,另一個爲成功後跳轉的頁面,使用jstl標籤來展示從域中取到的值。這兩個頁面和之前的一樣。
  3. 運行程序,進行驗證。可以看到控制檯已經成功打印出了我輸入的內容,並且成功頁面中也顯示出了我存在域中的值。
    在這裏插入圖片描述
    在這裏插入圖片描述

方法3:通過接口注入的方式

簡介:我們只需要實現要求的接口就可以獲取到request對象和servletContext對象。後面的存值取值方法就和前面是一樣的了。

使用方法如下所示:

  1. 首先我們創建一個類實現接口ServletRequestAware,ServletContextAware,其他的代碼如下圖所示
    在這裏插入圖片描述
    在這裏插入圖片描述
  2. 我們編寫兩個jsp頁面進行驗證,一個頁面爲表單用來驗證是否可以取出提交的參數,另一個爲成功後跳轉的頁面,使用jstl標籤來展示從域中取到的值。這兩個頁面和之前的一樣。
  3. 運行程序,進行驗證。可以看到控制檯已經成功打印出了我輸入的內容,並且成功頁面中也顯示出了我存在域中的值。
    在這裏插入圖片描述在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章