监听器与mvc
监听器概述
接收Web应用中的某些状态发生改变时会产生相应的事件,并事件发生时做出相关处理
主要接口以及方法
HttpSessionListener
sessionCreated(HttpSessionEvent event)
sessionDestroyed(HttpSessionEvent event)
执行session.invalidate()方法 session会话超时
web.xml中配置
代码语言:javascript复制<listener>
<listener-class>监听器完全限定名</listener-class>
</listener>
HttpSessionListener、HttpSessionBindingListener二者的区别
HttpSessionListener只需要设置到web.xml就可以监听整个应用中的所有session
HttpSessionBindingListener必须实例化后放入某一个session中,才能监听
监听范围
HttpSessionListener设置一次就可以监听所有session HttpSessionBindingListener通常是一对一
常用监听器接口
监听器接口 | 说 明 |
---|---|
javax.servlet.ServletContextListener | 在Servlet上下文对象初始化或销毁时得到通知 |
javax.servlet.ServletRequestListener | 在请求对象初始化时或者被销毁时得到通知 |
javax.servlet.http.HttpSessionListener | 在session创建后或者失效前得到通知 |
javax.servlet.ServletContextAttributeListener | 在Servlet上下文中的属性列表发生变化时得到通知 |
javax.servlet.ServletRequestAttributeListener | 在请求对象中的属性列表发生变化时得到通知 |
javax.servlet.http.HttpSessionAttributeListener | 在session中的属性列表发生变化时得到通知 |
javax.servlet.http.HttpSessionActivationListener | 绑定到session中,当session被钝化或者激活时得到通知 |
javax.servlet.http.HttpSessionBindingListener | 在绑定session或从session中删除时会得到通知 |
MVC设计模式
- 视图(View)- JSP、HTML等:负责与用户交互
- 控制器(Controller)- Servlet:负责流程控制
- 模型(Model)- JavaBean:负责业务逻辑处理、数据库访问
处理过程
MVC 优点
- 多视图共享一个模型,大大提高代码的可重用性
- MVC三个模块相互独立,松耦合架构
- 控制器提高了应用程序的灵活性和可配置性
- 有利于软件工程化管理
MVC 缺点
- 原理复杂
- 增加了系统结构和实现的复杂性
- 视图对模型数据的低效率访问