软件开发架构平台技术-------Struts2之Web容器对象的使用
Struts2之Web容器对象的使用
前段时间确实也比较忙的,忙着考试,忙着写实验,各种忙碌以至于迷失了自己,这两天稍稍轻松点,坐在高大上的中南新校图书馆里面的咖啡厅,吹着空调喝着咖啡,顿时心旷神怡,整理整理所遇到的问题总结一下,只有在知识的汪洋中我才能找到自己。
学习确实是一件非常幸福快乐的事情,乐在其中,用心去体会,慢慢品尝。虽然我们还在为我们的未来施肥洒水,除草,等待未来可以为社会贡献自己一份力,顺便实现人生价值,体会人生之乐。
我们使用过servlet后就会知道request,session,application这三大对象对于我们实现后台和前台的数据交互的重要性,当然我们使用struts2这个表示层框架进行开发时,当然也少不了这三个对象的使用。
然而 为了避免与Servlet API耦合在一起,方便Action类做单元测试,Struts 2对HttpServletRequest、
       HttpSession、ServletContext进行封装,构造了3个Map对象来替代这三种对象。但是其作用效果是不改变的。
        为获取这三个对象,
1.可以通过com.opensymphony.xwork2.ActionContext类来获取。
ActionContext context = ActionContext.getContext();
		Map request=(Map) context.get("request");
		Map session = context.getSession();
		Map application=context.getApplication();对这三个对象进行存取的时候和操作Map对象是一样的就不需要像以前那样setAttribute()了,方便了好多。
2.我们还可以通过RequestAware、SessionAware和ApplicationAware来获取这三个Map对象。
public class UserAction  implements RequestAware,SessionAware,ApplicationAware{
	private Map request;
	private Map session;
	private Map application;
	
	
	public void setApplication(Map<String, Object> arg0) {
		this.application=arg0;
		
	}
	public void setSession(Map<String, Object> arg0) {
		this.session=arg0;
		
	}
	public void setRequest(Map<String, Object> arg0) {
	this.request=arg0;
		
	}
} 
   3.当然我们也可以在Action中直接访问Web容器提供的request、session等对象,但不建议这么使用。
HttpServletRequest request=ServletActionContext.getRequest(); HttpSession session=request.getSession(); ServletContext context=ServletActionContext.getServletContext();