ServletContext ------ javax.servlet.ServletContext
ServletContext从他的package信息可以看出,它是标准的JavaEE WebApplication类库
ServletContext提供了标准的Servlet运行环境,其实就是一些servlet和web container进行通信的方法
*****************************************************************************************************************
ActionContext
源于struts2与struts1的本质不同
struts1时,由一个servlet (servlet org.apache.struts.action.ActionServlet)处理所有的*.do
struts2时,由一个filter(org.apache.struts2.dispatcher.FilterDispatcher)处理所有的请求
struts1 仍旧属于servlet范畴,struts1 action 其本质仍是servlet.
struts2 action 已经是普通的java bean了,已经跳出了servlet 框架
ActionContext就是为了弥补strtus2 action跳出标准servlet框架而造成的和WEB环境失去联系的缺陷
ActionContext的主要作用:
提供Web环境Context
解决线程安全问题
解决一些和其他框架或容器(siteMesh,webLogic)的兼容问题
如果看过源码就会明白ActionContext其实是个ThreadLocal,亦即用来解决并发问题的存储
*************************************************************************************************************************
ServletActionContext
在实际应用开发中,根据功能需要,在Action中必须要能获取到Servlet相关的API,比如要操作Cookie。这个时候,就需要用ServletActionContext了。
这个类直接继承了ActionContext,当然也继承了它父类的很多功能,比如:对OgnlValueStack、Action名字等的访问。更重要的是,它还提供了直接访问Servlet的相关对象的功能,它可以取得的对象有:
HttpServletRequest:请求对象
HttpServletResponse:响应对象
ServletContext:Servlet上下文信息
PageContext:Http页面上下文
里面方法都是静态的,可以直接使用