Listener的项目上下文(既ServletContext既application)是从event中获取的,event是Listener和容器之间交流的中间人
public interface ServletContextListener extends EventListener {
/**
** Notification that the web application initialization
** process is starting.
** All ServletContextListeners are notified of context
** initialization before any filter or servlet in the web
** application is initialized.
*/
public void contextInitialized ( ServletContextEvent sce );
--------------------------------------------
ServletContext servletContext;
public void contextInitialized(ServletContextEvent sce)
{
servletContext = sce.getServletContext();
}
而Filter的项目上下文(既ServletContext既application)是从FilterConfig中获取的,FilterConfig是Filter和容器之间交流的中间人
public interface Filter {
/**
* Called by the web container to indicate to a filter that it is being placed into
* service. The servlet container calls the init method exactly once after instantiating the
* filter. The init method must complete successfully before the filter is asked to do any
* filtering work. <br><br>
* The web container cannot place the filter into service if the init method either<br>
* 1.Throws a ServletException <br>
* 2.Does not return within a time period defined by the web container
*/
public void init(FilterConfig filterConfig) throws ServletException;
------------------------
filterConfig.getServletContext()
而Servlet的项目上下文(既ServletContext既application)是从ServletConfig中获取的,ServletConfig是Servlet和容器之间交流的中间人
public interface Servlet {
/**
* Called by the servlet container to indicate to a servlet that the
* servlet is being placed into service.
*
* <p>The servlet container calls the <code>init</code>
* method exactly once after instantiating the servlet.
* The <code>init</code> method must complete successfully
* before the servlet can receive any requests.
*
* <p>The servlet container cannot place the servlet into service
* if the <code>init</code> method
* <ol>
* <li>Throws a <code>ServletException</code>
* <li>Does not return within a time period defined by the Web server
* </ol>
*
*
* @param config a <code>ServletConfig</code> object
* containing the servlet's
* configuration and initialization parameters
*
* @exception ServletException if an exception has occurred that
* interferes with the servlet's normal
* operation
*
* @see UnavailableException
* @see #getServletConfig
*
*/
public void init(ServletConfig config) throws ServletException;
---------------------------------------
getServletConfig().getServletContext()
我们的应用程序组件只能被动的遵守一定的规则,和容器打交道,和其他组件通信,也必须借助于容器的力量。这里面其实已经有一点控制反转的味道,既然是组件生活在容器中,就必须被动的接受容器喂给他吃的东西,不能(要)自己创造(new)。
Spring之所以称为容器(号称轻量级),就是因为被他控制的组件,被动的吃他喂过来的东西,不能(要)自己创造(new)。
分享到:
相关推荐
4. **Servlet生命周期**:理解Servlet的加载、初始化、服务和销毁过程,以及如何使用ServletConfig和ServletContext。 5. **会话管理**:通过HttpSession对象实现用户会话跟踪,处理会话超时和会话失效问题。 6. *...
A filter configuration object used by a servlet container to pass information to a filter during initialization. flushBuffer() - Method in interface javax.servlet.ServletResponse Forces any content ...
因此,这份"Servlet和JSP学习指南"不仅涵盖了基础内容,也可能包含了一些进阶话题,如过滤器(Filter)和监听器(Listener)的使用,以及如何结合其他技术如EJB或JPA来实现更复杂的应用。 在学习过程中,通过实践...
在Servlet3.0中,我们可以使用注解(@WebServlet、@WebFilter、@WebListener)来替代web.xml中的XML配置,使得部署更简洁。例如,`@WebServlet("/example")`可以直接在Servlet类上声明URL映射。 2. **异步处理**:...
在JSP中,Servlet可以通过内置对象实现后端逻辑,如`request`、`response`对象用于获取和设置请求参数以及发送响应,`session`对象用于维护用户会话,`application`对象用于在整个应用范围内的数据共享。...
2. **Servlet API**:主要包括`HttpServletRequest`和`HttpServletResponse`接口,分别用于获取请求信息和构建响应。`ServletConfig`和`ServletContext`提供了配置和全局信息访问。 3. **Servlet的部署和映射**:...
4. `javax.servlet.ServletContextAttributeListener`: 监听ServletContext中属性的增加、删除和替换事件。 5. `javax.servlet.ServletRequestListener`: 用于监听ServletRequest的生命周期,Java标准API未直接提供...
**API(Application Programming Interface)技术** 在JSP和Servlet中扮演着关键角色,提供了丰富的类和方法供开发者使用。例如: 1. **HttpServletRequest和HttpServletResponse**:HTTP请求和响应的Java表示,...
`ApplicationListener`的实例可用于保存`ServletContext`的引用,以便在应用的生命周期中访问或操作。 6. **DWR (Direct Web Remoting) 配置** DWR是一个用于实现Ajax的框架,配置如下: ```xml <servlet> ...
6. **监听器(Listener)**:可以监听特定事件,如会话创建、销毁,或者ServletContext的初始化和销毁,实现特定的功能。 **JavaBean**是符合JavaBeans规范的Java类,通常作为可重用的组件使用,它们可以在JSP和...
Servlet 程序由 Servlet、Filter 和 Listener 组成。监听器用来监听 Servlet 容器上下文。监听器通常分三类:基于 Servlet 上下文的 ServletContex 监听、基于会话的 HttpSession 监听和基于请求的 ServletRequest ...
`web.xml`位于Web应用的`WEB-INF`目录下,是应用的元数据中心,包含了如Servlet、Filter、Listener等组件的配置信息。它告诉服务器如何处理HTTP请求以及如何初始化和管理Web组件。 ### 2. Servlet配置 在`web.xml`...
3. **最佳实践**:为了提高Web应用程序的性能和安全性,书中还介绍了一些最佳实践,比如使用过滤器(Filter)进行统一的编码设置、使用监听器(Listener)来管理应用程序的生命周期等。 通过上述内容的学习,读者不仅...
还有ServletConfig和ServletContext对象,用于获取Servlet配置信息和全局共享数据。 4. **JSP基础**:JSP是一种视图技术,它将HTML代码与Java代码分离,简化了动态网页的编写。JSP页面由HTML、CSS、JavaScript以及...
<listener-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</listener-class> </listener> <!-- 配置WebContextLoaderListener --> <listener> <listener-class>org.spring...
通过本教程,读者将学会如何整合Servlet、Filter、Listener等组件,以及如何处理静态资源和文件上传等问题。 #### 二、整合Servlet ##### 方式一:通过注解扫描完成Servlet组件的注册 **1.1 编写Servlet** 首先...
- **未来趋势**:随着云计算和微服务架构的发展,传统的Servlet/JSP应用可能需要结合新的技术和框架进行优化升级。 --- 以上是根据给定文件“Servlet与JSP核心编程(第2版).pdf”的标题、描述、标签以及部分内容...
- 部署描述符定义了应用的配置信息,包括Servlet、Filter、Listener的声明和映射。 8. **实战经验**: - 通过书中提供的源代码,你可以模拟实际项目,构建动态网站,如用户登录、注册、数据展示等。 - 学习如何...
Filter是Servlet API中另一个重要的组件,允许在请求到达Servlet之前或之后对其进行拦截和处理。例如,可以使用过滤器实现登录验证、GZIP压缩、字符编码转换等功能。 9. **监听器Listener** 监听器是实现Java EE...