詳解Struts2中Action訪問Servlet API的幾種方法
詳解Struts2中Action訪問Servlet API的幾種方法
在通常的web開發(fā)中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():靜態(tài)方法,獲取系統(tǒng)的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,其靜態(tài)方法有: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的幾種方法,如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
完美解決jsp頁面在IE8下文本模式自動為(雜項Quirks)導致頁面顯示錯位
下面小編就為大家?guī)硪黄昝澜鉀Qjsp頁面在IE8下文本模式自動為(雜項Quirks)導致頁面顯示錯位。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06基于javaweb+jsp實現企業(yè)車輛管理系統(tǒng)
這篇文章主要為大家詳細介紹了javaweb+jsp實現企業(yè)車輛管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11通用彈出層頁面(兼容IE、firefox)可關閉控制寬高及屏蔽背景
本人搜集整理了一個通用彈出層頁面(兼容IE、firefox)可關閉控制寬高及屏蔽背景,需要的朋友可以了解下2012-12-12使用JSP + JAVABEAN + XML 開發(fā)的一個例子
使用JSP + JAVABEAN + XML 開發(fā)的一個例子...2006-10-10