我們之前使用struts2進(jìn)行開(kāi)發(fā)看起來(lái)就像java工程并沒(méi)有涉及到servlet API的使用,但我們都知道它是建于servlet之上的,struts2其實(shí)也是允許開(kāi)發(fā)者在Action中操作response、request等一系列serlvet API的
通過(guò)類(lèi)ServletActionContext即可,示例:

通過(guò)ServletActionContext提供的一系列靜態(tài)方法,我們可以輕松的獲取到request,獲取到request就能獲取到Session、ServletContext了
再介紹一個(gè)類(lèi)ActionContext,它是ServletActionContext的父類(lèi),通過(guò)它我們可以獲得一些關(guān)于servlet api底層的一些東西,觀察如下代碼:

通過(guò)ActionContext對(duì)象我們可以獲取HttpSession底層的數(shù)據(jù)結(jié)構(gòu),這樣其實(shí)就可以操縱session,那么為什么要提供這樣的方法呢?主要是為了簡(jiǎn)化測(cè)試
了解部分:
WEB測(cè)試分為:容器內(nèi)測(cè)試(jetty)、模擬測(cè)試(mock)
所謂的容器內(nèi)測(cè)試就是通過(guò)java代碼來(lái)啟動(dòng)服務(wù)器,可以編寫(xiě)代碼向某一個(gè)資源發(fā)送請(qǐng)(不是通過(guò)瀏覽器),服務(wù)器收到請(qǐng)求創(chuàng)建HttpServletRequest等對(duì)象,我們拿到這些對(duì)象就可以操縱他們了
模擬測(cè)試就是模擬HttpServletRequest對(duì)象,如何模擬呢?就是繼承HttpServletRequest、HttpSession等Servlet APIS,當(dāng)然是由測(cè)試框架來(lái)繼承的,我們?cè)儆眠@些APIS來(lái)進(jìn)行測(cè)試