Struts2之Servlet API及單元測試初識

可以無視的聲明:對於博文中出現的錯別字,以及語義不對給大家造成的困擾向大家致歉,同時也希望朋友給予包容和諒解。鄙人現在真的忙的快要瘋了,早晨一起牀就是趕快發博文,然後就是維護自己網站。上午基本就這幾樣就沒了,下午就是寫軟文,找友鏈。晚上就是給大家寫博文了。有時碰到有課,都得一樣一樣往後推,但我不想推掉每日一篇的博文。所以博文出現的個別可以忽視的錯誤,大家就別計較了。當然我並不是說大家就不用聯繫我了,關於學習交流的問題,還是希望大家積極交流的。So 奮鬥吧,騷年!!!

 

 

一、學習案例:通過在LoginAction中比較通過ServletActionContext獲取的session和通過ActionContext獲取的session,分析兩個session的區別

 

二、案例分析:通過使用ServletActionContext獲取的session設置,在頁面能夠得到,說明這樣是獲取的貨真價實的HttpSession(服務器對象),而通過ActionContext獲取的session是個Map集合,通過之前設置的key我們也能獲取其對應的值,說明他兩個是維護的同一個對象,其實也就是前者底層的Map對象。而爲什麼通過ActionContext獲取的是Map對象呢?其實這是struts2爲了簡化我們的單元測試

a)服務器端代碼的單元測試有兩種模式

1、容器內測試(Jetty),本質必須有服務器。好像asp.net就是用的Jetty

2、Mock測試(繼承HttpServletRequestHttpSessionHttpServletResponseServlet API)如:JMockeasyMock

b)關於單元測試,不多講,如果有朋友想了解的可以自己去問度娘。不過我要說的是,我們一般寫程序有jUnit就夠了。其實即使jUnit我也沒怎麼用過,只是在剛開始學習時用過,後來就不怎麼用了,因爲一般我們能熟練運用debug調試就OK了。

c)struts2爲我們提供了一個Preparable接口。

其作用是讓Action完成一些初始化工作,初始化工作是放在其實現方法prepare()中的,通過輸出測試,我們可以發現prepare()是在execute()之前執行的,其作用和jUnitinit()功能一樣,都是起到初始化準備工作。

 

三、經驗之談:

a)單元測試,我用的不多也不好隨便講,所以有興趣的朋友,可以自行查閱。

b)在此,我想強調的是debug調試。寫程序如果連debug都不會,都會讓人笑掉大牙。至於,debug大家在網上扒下資料一看就懂,主要是多練多用。Debug一方面能夠幫助我們快速解決問題,另一方面就是有助於我們理解代碼執行邏輯。所以初學者遇到問題,先debug下,再解決不了,再去網上查資料,同時初學者千萬不要養成什麼都依賴度孃的習慣,就如之前的我一樣,有問題就問度娘,直接形成了依賴,自己思考都懶得思考,這樣最直接的後果就是你會成爲一枚實實在在的碼農,互聯網的搬運工。所以大家遇到問題,先自行思考,實在不行再去問度娘。

 

 

四、參考項目:http://download.csdn.net/detail/u011638419/8188623

 

五、每日一樂:

陌陌有個女的問我在哪上班。我說在國企。

她又問一個月工資多少。我說一萬。

然後就各種跟我套近乎。

當我告訴她我一個月工資一萬一年就上倆月班的時候她在也沒和我說過話。

 

最終解釋權歸愛尚合夥人所有,轉載請註明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章