import database.BookDBAO; import javax.servlet.*; import util.Counter; import javax.ejb.*; import javax.persistence.*; public final class ContextListener implements ServletContextListener { private ServletContext context = null; @PersistenceUnit EntityManagerFactory emf; public void contextInitialized(ServletContextEvent event) { context = event.getServletContext(); try { BookDBAO bookDB = new BookDBAO(emf); context.setAttribute("bookDB", bookDB); } catch (Exception ex) { System.out.println( "Couldn’t create database: " + ex.getMessage()); } Counter counter = new Counter(); context.setAttribute("hitCounter", counter); counter = new Counter(); context.setAttribute("orderCounter", counter); } public void contextDestroyed(ServletContextEvent event) { context = event.getServletContext(); BookDBAO bookDB = context.getAttribute("bookDB"); bookDB.remove(); context.removeAttribute("bookDB"); context.removeAttribute("hitCounter"); context.removeAttribute("orderCounter"); } }
Servlet Life Cycle
The life cycle of a servlet is controlled by the container in which the servlet has been deployed. When a request is mapped to a servlet, the container performs the following steps.
-
If an instance of the servlet does not exist, the web container
-
Loads the servlet class.
-
Creates an instance of the servlet class.
-
Initializes the servlet instance by calling the init method. Initialization is covered in Initializing a Servlet.
-
-
Invokes the service method, passing request and response objects. Service methods are discussed in Writing Service Methods.
If the container needs to remove the servlet, it finalizes the servlet by calling the servlet’s destroy method. Finalization is discussed inFinalizing a Servlet.
Handling Servlet Life-Cycle Events
You can monitor and react to events in a servlet’s life cycle by defining listener objects whose methods get invoked when life-cycle events occur. To use these listener objects you must define and specify the listener class.
Defining the Listener Class
You define a listener class as an implementation of a listener interface. Table 4-2 lists the events that can be monitored and the corresponding interface that must be implemented. When a listener method is invoked, it is passed an event that contains information appropriate to the event. For example, the methods in the HttpSessionListener interface are passed an HttpSessionEvent, which contains an HttpSession.
Web context (seeAccessing the Web Context) |
Initialization and destruction |
javax.servlet.ServletContextListener and ServletContextEvent |
Attribute added, removed, or replaced |
javax.servlet.ServletContextAttributeListener and ServletContextAttributeEvent |
|
Session (See Maintaining Client State) |
Creation, invalidation, activation, passivation, and timeout |
javax.servlet.http.HttpSessionListener,javax.servlet.http.HttpSessionActivationListener, and HttpSessionEvent |
Attribute added, removed, or replaced |
javax.servlet.http.HttpSessionAttributeListener and HttpSessionBindingEvent |
|
Request |
A servlet request has started being processed by web components |
javax.servlet.ServletRequestListener and ServletRequestEvent |
Attribute added, removed, or replaced |
javax.servlet.ServletRequestAttributeListener and ServletRequestAttributeEvent
|
发表评论
-
Classloader
2011-11-22 14:09 753The class loader: BootStrap c ... -
JUnit Knowledges
2011-10-25 23:09 758mock objects: http://bigwhite. ... -
Java跨平台程序设计规则
2011-09-20 12:38 951不是说所有的Java程序都具有Java跨平台的特性,事实上,相 ... -
Common Gateway Interface
2011-08-25 15:20 1387A web server that supports ... -
什么时候使用属性或者元素(Designing XML document)
2011-08-19 11:34 1008Properties 是平面结构,想要表达结构复杂的信息有一定 ... -
Java - Generic
2011-07-19 12:35 725Generics <!--[if !suppor ... -
Java Exception Study
2011-07-13 16:37 855Java Exception <!--[if ! ... -
面向对象的设计的四个主要原则
2011-07-11 14:22 13571. ISP (Interface Segregation ... -
Design Pattern
2011-07-11 11:52 654Mediator 一、引子 中介在现实 生活中并 ... -
Java Generic, Association, Composition, Aggregate
2011-07-05 16:20 1148UML中依赖泛化关联实现聚合组合的Java实现 ... -
ETL
2011-06-30 11:36 851ETL 对于数据仓库以及ETL的知识,我基本上是个 ... -
Java Collection Frameworks 学习
2011-06-30 11:17 692Java 集合总结 <!--[if !su ... -
Java Clone
2011-06-29 16:07 810Clone interface: 如果一个实现了Cl ... -
Credit Card 的工具类
2010-05-10 15:24 878这是一个非常有用的工具类用于验证credit card, 是a ... -
实例化抽象类时实现抽象类里的抽象方法
2010-04-16 09:18 1004EccTrxCmd logWSCall = new EccTr ... -
Java reflect
2010-03-09 16:21 813【转】Java反射经典实例 Java Reflection C ...
相关推荐
Servlet API的核心概念包括Servlet、Filter和Listener。Servlet是一种Java类,用于扩展Web服务器的功能,处理来自客户端(如浏览器)的HTTP请求,并向客户端发送响应。例如,一个Servlet可能接收表单数据,处理业务...
开发者可以使用注解(如`@WebServlet`, `@WebFilter`, `@WebListener`)来声明Servlet、Filter和Listener,而无需在web.xml配置文件中进行硬编码。这极大地提高了代码的可读性和部署的灵活性。 2. **异步处理**:...
- 实现了监听器(Listener)接口,如ServletContextListener,用于在Servlet容器启动和停止时执行特定操作。 - 引入过滤器(Filter)概念,允许开发者在请求到达Servlet之前进行拦截和处理,实现如权限控制、字符...
在Java的Web开发中,Servlet和Listener是两个非常重要的组件,它们构成了动态Web应用程序的核心部分。Servlet主要负责处理客户端的请求并返回响应,而Listener则用于监听和响应各种Web应用程序中的事件。本教程将...
6. `javax.servlet.annotation`包:包含了各种注解,比如`@WebServlet`、`@WebFilter`和`@WebListener`,使得开发者可以通过注解方式声明Servlet、过滤器和监听器,简化了web.xml配置文件的编写。 7. `javax....
在Java Web开发中,servlet-api.jar 提供了诸如Servlet、Filter和Listener等核心组件的定义,它们是构建动态Web应用的基础。Servlet是Java编程语言中实现动态网页的一种方式,它接收HTTP请求并返回响应。javax....
8. **监听器Listener**:Servlet 2.5 API提供了多种监听器接口,如ServletContextListener、ServletRequestListener、HttpSessionListener等,可以监听Web应用程序、请求和会话事件。 9. **URL映射**:Servlet可以...
7. **监听器Listener**:监听器允许我们监听Servlet容器中的特定事件,如会话创建、销毁、上下文初始化等。常见的监听器接口有`ServletContextListener`、`ServletRequestListener`等。 8. **会话Session管理**:...
**JSP(JavaServer Pages)API 和 Servlet API 知识详解** JSP(JavaServer Pages)和Servlet是Java EE(Enterprise Edition)中的两个核心技术,它们主要用于构建动态Web应用程序。这两个API,即`jsp-api.jar`和`...
8. **Listener**:Servlet API中还有监听器(Listener),它们可以监听Web应用中的特定事件,如请求到达、会话创建等,并相应地执行代码。 在实际开发中,开发人员通常不会直接操作servlet-api.jar,而是将其作为...
《Java Servlet 3.1 规范》是中国Java开发者学习Servlet技术的重要参考资料,它详细阐述了Servlet 3.1版本中的各项特性与规范。该文档旨在辅助英文版的学习,帮助开发者更深入地理解和应用Servlet技术。 Servlet是...
- Servlet 3.0提供对Java Naming and Directory Interface (JNDI) 的支持,可以通过`ServletContext`的`lookup()`方法进行资源查找。 10. **部署和热部署**: - 开发者可以使用Servlet 3.0的热部署功能,无需重启...
4. **监听器(Listener)**:监听器是实现了特定接口的类,用于监听Servlet容器中的特定事件,如会话创建、销毁、上下文初始化或销毁等。例如,`HttpSessionListener`用于监听会话的创建和销毁。 5. **请求和响应...
1. **注解配置**:在Servlet 3.0中,开发者可以直接在类或方法上使用注解(如`@WebServlet`、`@WebFilter`和`@WebListener`)来声明Servlet、过滤器和监听器,而无需在web.xml文件中进行繁琐的手动配置。 2. **异步...
5. **注解驱动配置**:Servlet 3.1进一步强化了注解的使用,包括对Servlet、Filter和Listener的注解配置,减少了XML配置文件的需求。 6. **多文件上传**:在Servlet 3.1中,可以通过单个`Part`接口处理多个文件上传...
Servlet-api.jar是一个重要的Java Web开发库,主要用于实现服务器端的Servlet和JSP(JavaServer Pages)功能。在Java EE(企业版)环境中,Servlet扮演着核心角色,它是一种用于扩展Web服务器功能的Java API。...
2. **Servlet-API 2.3**:发布于2000年,这个版本引入了Servlet Filter和Servlet Listener的概念。Servlet Filter允许开发者在请求到达目标Servlet之前或之后对其进行拦截和处理,用于实现如日志记录、性能监控、...
6. **过滤器和监听器** - Servlet API中还包括Filter和Listener接口,它们能增强应用的功能,比如实现登录验证、字符编码转换、会话管理等。 7. **Web容器** - 如Tomcat、Jetty等,它们提供运行Servlet和JSP的环境...
`javax.servlet-api`是一个关键的Java库,它定义了Servlet、过滤器(Filter)和监听器(Listener)等核心接口,是开发Java Servlet应用的基础。这个库通常以JAR(Java Archive)文件的形式存在,例如在提供的`javax....
8. **监听器Listener**:Servlet API还定义了一系列事件监听器接口,如`ServletRequestListener`、` HttpSessionListener`,允许你在特定的Web事件发生时执行代码,如会话创建、销毁等。 9. **部署描述符web.xml**...