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 {
public void init(ServletConfig config) throws ServletException;
---------------------------------------
getServletConfig().getServletContext()
我们的应用程序组件只能被动的遵守一定的规则,和容器打交道,和其他组件通信,也必须借助于容器的力量。这里面其实已经有一点控制反转的味道,既然是组件生活在容器中,就必须被动的接受容器喂给他吃的东西,不能(要)自己创造(new)。
Spring之所以称为容器(号称轻量级),就是因为被他控制的组件,被动的吃他喂过来的东西,不能(要)自己创(new)。
分享到:
相关推荐
一般来说,listener 的加载顺序是在 filter 和 servlet 之前的,因为 listener 需要监听 ServletContext 的事件,以便实现对 Web 应用的监听和控制。filter 的加载顺序是在 servlet 之前的,因为 filter 需要对请求...
Servlet、Filter、Listener 详解 Servlet 是运行在服务器上的小程序,它可以使任何 Java 应用程序、浏览器或任何设备。Servlet 的客户端可以提出请求并获得该请求的响应。Servlet 在初始化后即驻留内存中,因此每次...
Servlet、Filter和Listener是Java Web开发中的核心组件,它们在构建动态Web应用程序中扮演着重要角色。下面将分别深入解析这三个概念。 **Servlet接口** Servlet是Java编程语言中定义的一个接口,它允许开发者创建...
8. **过滤器Filter**:Servlet API还定义了Filter接口,允许在请求到达Servlet之前进行拦截和处理,比如登录检查、数据转换等。 9. **监听器Listener**:Servlet API提供了各种监听器,如SessionListener、...
然而,在特定场景如ActionForm、Servlet、Filter、Listener等中,传统的注入方式可能无法正常工作,需要采用特殊的注入手段。 在标题和描述中提到的特殊情况主要涉及ActionForm。ActionForm是Struts1.x的一个概念,...
doFilter(ServletRequest, ServletResponse, FilterChain) - Method in interface javax.servlet.Filter The doFilter method of the Filter is called by the container each time a request/response pair is ...
此外,Servlet API还提供了过滤器(Filter)和监听器(Listener)的概念,它们允许开发者在请求到达Servlet之前进行拦截处理,或者监听特定的事件,如session创建、销毁等。 JSP技术则是基于Servlet的,它将HTML和...
ServletRegistration.Dynamic servlet = servletContext.addServlet("MyServlet", MyServlet.class); servlet.addMapping("/myPath"); ``` 这个特性极大地提高了应用的可扩展性和模块化程度,使得开发人员可以更加...
Servlet API还包含了Filter接口,允许开发者在请求到达Servlet之前或离开Servlet之后对其进行拦截和处理。过滤器在web.xml中配置,并通过`<filter>`和`<filter-mapping>`元素定义过滤规则。 八、监听器(Listener)...
在Servlet学习中,Filter和Listener也是重要的部分。Filter可以在请求到达Servlet之前对其进行预处理,或者在响应返回客户端之后进行后处理。Listener则监听Web应用中的特定事件,如会话创建、销毁等,提供额外的...
- `Filter`:Servlet API还提供了过滤器(Filter)机制,可以在请求到达Servlet之前或之后进行拦截和处理,比如进行登录验证、数据转换等。 - `Listener`:监听器(Listener)可以监听特定的事件,比如用户会话的...
6. `javax.servlet.annotation`包:包含了各种注解,比如`@WebServlet`、`@WebFilter`和`@WebListener`,使得开发者可以通过注解方式声明Servlet、过滤器和监听器,简化了web.xml配置文件的编写。 7. `javax....
综上所述,Servlet API是构建Java Web应用的基础,提供了处理HTTP请求的核心功能,结合Filter和Listener可以实现复杂的Web应用逻辑。理解并熟练掌握Servlet API对于任何Java Web开发者都是至关重要的。
9. **监听器Listener**:Servlet API中的监听器(如ServletRequestListener、ServletContextListener)可以在特定事件(如请求到达、应用启动/停止)发生时执行代码,增强了应用程序的灵活性。 10. **会话管理**:...
监听器(Listener)是另一种Java Web组件,用于监听特定事件并作出响应,如监听Session的创建、销毁,监听应用上下文的初始化和销毁,或者监听ServletContext、HttpSession、ServletRequest等对象的状态变化。...
Servlet API的核心概念包括Servlet、Filter和Listener。Servlet是一种Java类,用于扩展Web服务器的功能,处理来自客户端(如浏览器)的HTTP请求,并向客户端发送响应。例如,一个Servlet可能接收表单数据,处理业务...
9. **部署描述符web.xml**:在Web应用中,`WEB-INF/web.xml`文件是部署描述符,用于配置Servlet、Filter和Listener,以及其他设置。 10. **MVC模式**:Servlet常与Model-View-Controller(MVC)设计模式结合使用,...
除了在Servlet中,我们还可以在Filter、Listener或其他JavaEE组件中获取到ServletContext。 在实际开发中,结合ServletContext和文件系统操作,可以实现诸如上传下载文件、读取配置文件、日志记录等功能。同时,...
Servlet 3.0引入了注解配置,使得无需web.xml也能声明Servlet、Filter和Listener,简化了Web应用的配置。 总结,Servlet API是Java Web开发的基石,通过理解其源码,开发者可以更好地掌握HTTP请求处理机制,提高...
6. **Web Deployment Descriptor (web.xml)**:这是Servlet应用的部署描述符,定义了Servlet、Filter和Listener的配置信息,以及它们之间的映射关系。web.xml文件是Servlet API配置的主要方式,但随着Java EE的演进...