ServletContext,ActionContext,ServletActionContext

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页面上下文

    里面方法都是静态的,可以直接使用


你可能感兴趣的:(ServletContext,ActionContext,ServletActionContext)