Servlet第七章知识点总结——Servlet监听器
目标
理解事件监听器的概念
编写事件监听器
部署事件监听器
知识点预览
监听器
监听器
1. 什么是事件监听器
a) 定义:
i. 专门用于监听另一个java对象的方法调用或属性改变
ii. 当被监听对象发生上述事件后,监听器某个方法将立即被执行。
b) 按监听的对象来划分:
i. 用于监听应用程序环境对象(ServletContext)的事件监听器
ii. 用于监听用户会话对象(HttpSession)的事件监听器
iii. 用于监听请求消息对象(ServletRequest)的事件监听器
c) 按监听的事件类型进行划分
i. 用于监听域对象自身的创建和销毁的事件监听器
ii. 用于监听域对象中的属性的增加和删除的事件监听器
iii. 用于监听绑定到HttpSession域中的某个对象的状态的事件监听器
2. ServletContextListener
a) 作用:
监听ServletContext对象的创建和删除以及属性的添加、删除和修改等操作。
b) 两个事件处理方法
i. public void contextInitialized(ServletContextEvent sce)
ii. public Void contextDestroyed(ServletContextEvent sce)
3. HttpSessionListener
a) 管理来自同一个客户端或用户发送向一个网络应用的一系列请求的状态和资源集合
b) 两种类型事件监听器
i. public void sessionCreated(HttpSessionEvent se)
ii. public void sessionDestoryed(HttpSessionEvent se)
4. ServletRequestListener
a) servlet请求整个生命周期的管理
b) 两种类型的事件监听器
i. public void requestInitialized(ServletRequestEvent sre)
ii. public void requestDestroyed(ServletRequestEvent sre)
5. J2EE网络应用中的监听器
6. 事件和监听器接口
7. 监听器规定
a) 每一个监听器类必须有一个公共的没有参数的构造函数
b) 监听器类打包到WAR中,要么放在WEB-INF/classess文件夹下面,要么放在WEB-INF/lib目录下面的JAR文件中.
c) 监听器类使用监听器元素在网络布署描述符中声明.
8. 一个Servlet Context样例管理数据库连接
a) 当一个启用启动,监听器类被通知,应用登录数据库,并且把连接存放到servlet上下文中.
b) 应用中的Servlet在网络应用中在活动中可以获得这个连接.
c) 当然网络服务器关闭时,或者程序从网络容器中移除时,监听器类接到通知并且把数据库连接关闭.
9. The CtxListener
10. The DBConnection
11. CtxListener的布署描述符
a) <Listener>元素的子元素
i. desoption
ii. display-name
iii. icon
iv. listener-class
12. 思考-何时保存购物车
a) 当一个会话启动时,监听器接到通知.WEB应用创建一个购物车,并且把购物车保存到会话上下文中。
b) 应用中的Servlet在活动中访问购物车并向购物车中添加和删除商品.
c) 当会话失效,或者应用从网络容器中移除,监听器接到通知并且移除购物车.
13. The SessionListener
14. SessionListener的布署描述
网络应用程序事件的的回顾
扩展HttpServlet
重写一个服务方法去接受servlet的请求
设置内容类型
使用getPrintWriter()或getServletOutputStream()
利用println方法生成动态HTML
使用output.close()
使用getServletContext().log()记录日志信息