读书人

几个 Context 前后文的区别

发布时间: 2013-05-02 09:39:29 作者: rapoo

几个 Context 上下文的区别
在 java 中, 常见的 Context 有很多,

像: ServletContext, ActionContext, ServletActionContext, ApplicationContext, PageContext, SessionContext ...

那么, Context 究竟是什么东西呢? 直译是上下文、环境的意思。比如像: "今天我收到了一束花, 男朋友送的!" 又或者 "今天我收到了一束花, 送花的人送错了的!"

同样是收到一束花, 在不同的上下文环境中表达的意义是不一样的。

同样的, Context 其实也是一样, 它离不开所在的上下文环境, 否则就是断章取义了。

另外, 在网络上也有些人把 Context 看成是一些公用信息或者把它看做是一个容器的, 个人觉得这种解释稍好。

接下来说说 ServletContext, ActionContext, ServletActionContext。

1> ServletContext

一个 WEB 运用程序只有一个 ServletContext 实例, 它是在容器(包括 JBoss, Tomcat 等)完全启动 WEB 项目之前被创建, 生命周期伴随整个 WEB 运用。

当在编写一个 Servlet 类的时候, 首先是要去继承一个抽象类 HttpServlet, 然后可以直接通过 getServletContext() 方法来获得 ServletContext 对象。

这是因为 HttpServlet 类中实现了 ServletConfig 接口, 而 ServletConfig 接口中维护了一个 ServletContext 的对象的引用。

利用 ServletContext 能够获得 WEB 运用的配置信息, 实现在多个 Servlet 之间共享数据等。

eg:





当访问 PrepareConnectionServlet.action 时, 后台打印输出:
public String execute(){            //或 implements ServletRequestAware    HttpServletRequest request = ServletActionContext.getRequest();    //或 implements ServletResponseAware    HttpServletResponse response = ServletActionContext.getResponse();    //或 implements SessionAware    HttpSession session = request.getSession();    //或 implements ServletContextAware    ServletContext context = ServletActionContext.getServletContext();            return SUCCESS;}


[ 出处:http://www.blogjava.net/fancydeepin ]

读书人网 >行业软件

热点推荐