日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Struts2中Action访问Servlet API的三种方法

發布時間:2025/6/15 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Struts2中Action访问Servlet API的三种方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Struts2的Action并未直接與任何Servlet API耦合,這是Struts2的一個改良之處,因為Action類不再與Servlet API耦合,能更輕松的測試該Action。但如何訪問?

Web應用中通常需要訪問的Servlet API就是HttpServletRequest、HttpSession、ServletContext這3個類,分別代表JSP內置對象中的request、session、application。

方法一:(一般推薦使用,IOC方式,只能獲得request,而response則得不到)

Struts2提供了ActionContext類,通過ActionContext類訪問Servlet API。

下面是ActionContext類中包含的幾個常用方法。

1、public Object get(Object key):取得HttpServletRequest中key的值;

2、void put(String key,Object value):設置HttpServletRequest中key的值為value;

3、public Map getApplication():獲取封裝了ServletContext的Map對象;

4、void setApplication(Map application):設置ServletContext實例;

5、static ActionContext getContext():靜態方法,獲取系統的ActionContext實例;

6、Map getParameters():類似于HttpServletRequest中的getParametersMap方法;

7、public Map getSession():獲取封裝了HttpSession的Map對象;

8、void setSession(Map session):直接傳入一個Map實例,將該Map實例里的key-value對轉換為session的屬性名和屬性值;

方法二:(不推薦,麻煩,非IOC方式,與Servlet API耦合大)

雖然Struts2提供了ActionContext來訪問Servlet API,但這種訪問不能直接獲得Servlet API,為了在Action中直接訪問Servlet API,Struts2還提供了以下接口。

1、ServletContextAware:實現該接口的Action可以直接訪問Web應用的ServletContext實例;

2、ServletRequestAware:實現該接口的Action可以直接訪問用戶請求對象的HttpServletRequest的實例;

3、ServletResponseAware:實現該接口的Action可以直接訪問服務器響應的HttpServletResponse的實例;

方法三:(非IOC方式,強烈推薦使用)

Struts2還提供了一個ServletActionContext,其靜態方法有:getPageContext()、getRequest() 、getResponse()、getServletContext()。

1、HttpServletRequest request=ServletActionContext.getRequest();

2、HttpServletResponse response=ServletActionContext.getResponse();

3、request.getSession().setAttribute("username","admin");

4、request.setAttribute("password","123456");

總結

以上是生活随笔為你收集整理的Struts2中Action访问Servlet API的三种方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。