国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

詳解Struts2中Action訪問Servlet API的幾種方法

2024-09-05 00:18:51
字體:
來源:轉載
供稿:網友

Struts2中Action訪問Servlet API的方法是很常遇見的,在struts 2的動作部分,即控制器層采用低入侵模式,下面就跟著錯新技術頻道小編和大家詳解Struts2中Action訪問Servlet API的幾種方法吧!

詳解Struts2中Action訪問Servlet API的幾種方法

在通常的web開發中Request和Response對象比較常見,但在Struts2框架中由于Action能與JSP頁面進行數據交互,所以通常都不會用到這兩個對象。如果想在Struts2程序中用到這兩個對象,也有解決方法

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的幾種方法,這些方法也不是必須一定要熟練,但是我們一定要了解哦。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 祁门县| 青铜峡市| 吴川市| 崇义县| 阿荣旗| 莒南县| 青铜峡市| 东宁县| 大安市| 永春县| 鄂尔多斯市| 辽阳市| 买车| 太湖县| 灵璧县| 延庆县| 石景山区| 镇远县| 孙吴县| 资中县| 密山市| 琼结县| 本溪| 株洲市| 阜城县| 库伦旗| 峡江县| 项城市| 馆陶县| 阿勒泰市| 峨山| 商丘市| 兴隆县| 浑源县| 泾川县| 会泽县| 凌海市| 松原市| 郧西县| 江川县| 武山县|