1:在Action中获取servletContext的时候可以通过this.getServlet().getServletContext();方式获取
也可以用requset.getSession().getServletContext();效果一样
2:对于web容器来说,ServletContext接口定义了一个servlet环境对象,这个对象定义了一个在servlet引擎上的servlet的视图。通过使用这个对象,servlet可以记录事件,得到资源并得到来自servlet的引擎类。
servlet容器在启动时会加载web应用,并为每个web应用创建唯一的servlet context对象,可以把ServletContext看成是一个Web应用的服务器端组件的共享内存,在ServletContext中可以存放共享数据,他提供了4个读取和设置共享数据的方法。具体见api帮助文档。
另外,ServletContext对象只在web应用被关闭的时候才被销毁,不同的web应用,ServletContext各自独立存在。
一个web应用由jsp,servlet,javabean等web组件的集合构成,每一个web应用,容器都会有一个背景对象,而javax.servlet.ServletContext接口就提供了访问这个背景对象的途径。你可以通过一个servlet实例的getServletContext()方法得到该servlet运行其中的这个背景对象,从这个背景对象中你可以访问如下信息资源:
1.初始化参数
2.存储在背景中的对象
3.与背景关联的资源
4.日志
最后针对ServletContext我自己的总结是:
ServletContext即servlet容器,其内提供的方法可以在同一web应用下的所有servlet中被使用
上面的获取方法其实最后都是通过一个servlet实例的getServletContext()方法获取的,只是实现了自己的封装
分享到:
相关推荐
为了实现这一目标,Spring提供了一种方法来让我们在非Action类中获取到ApplicationContext上下文对象,进而通过这个上下文对象获取到所需的Bean实例,例如DAO层的对象。本文将详细介绍如何在Action以外的地方获取DAO...
在处理过程中,Action需要获取JSP页面传递的参数。本篇将详细讲解Struts2中Action如何获取JSP页面参数以及相关上下文对象的使用。 1. **ActionContext** - ActionContext是Struts2框架中执行Action时的上下文环境...
需要注意的是,`ActionContext`的使用应该在Action执行的适当时刻,避免在Action构造函数中获取`ActionContext`,因为在构造函数执行时,ActionContext可能还没有被完全初始化。 总的来说,在Struts2中,通过`...
这些方法可以在 Action 中使用,以访问 Servlet API。 Struts2 框架提供了多种方式来访问 Servlet API,包括使用 ActionContext 类、实现接口和使用 ServletActionContext 类等。开发人员可以根据实际情况选择合适...
在获取 ServletContext 对象时,可以使用以下方式: `servletContext sc = servlet.getServletContext();` `servletContext sc = this.getServletContext();` `servletContext sc = request.getSession()....
在"struts2-web"这个压缩包文件中,可能包含了一个或多个示例项目,演示了如何在Struts2的Action类中实现对application、session和request域的访问。开发者可以运行这些示例,通过观察控制台输出或页面显示,了解...
这里的`this.getServlet()`返回了当前Action类所关联的Servlet实例,然后通过`getServletContext()`获取`ServletContext`对象,这个对象提供了对整个Web应用的访问。`getRealPath("/")`方法用于将相对于Web应用的URL...
`DefaultActionProxy`持有用户请求的`namespace`和`actionName`,并获取相应的`ActionConfig`,这可以通过`ConfigurationManager`的静态方法`getConfiguration()`来实现,确保在整个应用程序中只存在一个`...
需要注意的是,由于ActionContext在Action实例化时可能还没有完全初始化,所以在Action的构造函数中不应直接使用`ActionContext.getContext()`,因为可能会获取到null值。应在Action的execute方法或其他适当的地方...
在这个"Action访问Servlet的API的简单实例"中,我们将探讨如何在Struts Action中通过不同的方式来访问Servlet API,以便于处理HTTP请求和响应。 首先,我们来看**访问方式一**,这是通过实现Struts提供的接口来获取...
1. `ServletContextAware`: 实现此接口的Action可以在初始化时获取到ServletContext实例。 2. `ServletRequestAware`: 实现这个接口的Action可以获取到HttpServletRequest实例,以便直接操作请求数据。 3. `...
2.2 名称空间在元素和属性中的运用 39 2.2.1 名称空间在元素中的运用 39 2.2.2 默认名称空间 41 2.2.3 名称空间在属性中的运用 42 2.3 名称空间和dtd 43 2.4 小结 45 第3章 对xml文档进行分析 46 3.1 dom、...
这种方式使得Struts在运行时能够通过Spring获取Action实例。 2. 直接在`web.xml`中加载Spring配置: 这种方式下,不再使用`<plug-in>`节点,而是通过`<context-param>`在`web.xml`中声明Spring的配置文件路径。...
使用ActionContext时,需要特别注意不要在Action的构造函数中获取ActionContext,因为那时ActionContext可能还未完全初始化,获取到的值可能是null。正确的做法是在Action的execute方法或其他业务方法中使用。 总结...
在Struts2框架中,OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置Java对象的属性。本文将深入探讨OGNL中`#`,`%`,`$`这三个特殊符号的用法。 首先,`#`符号在OGNL中的主要作用是...
- 在Action类中,可以通过`ActionContext.getContext()`方法获取当前请求的ActionContext实例。 - 通过ActionContext,可以访问到ValueStack,进而操作栈顶的对象,实现数据的读写。 - 可以利用ActionContext将...