【Head First Servlets and JSP】笔记8:监听者

1、你不用了解所有监听者API,并不多,一共有8个。不过,你需要知道你能监听什么,以便在需要的时候可以查。


2、关于Session和Cookie。参见JavaWeb学习总结(十二)——Session by 孤傲苍狼
3、HttpSessionBindingListener
这是一个非常有用的监听者,为什么说它有用呢?因为它可以协助我们同步实际对象和数据库的信息。例如:
package com.example; import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener; public class Dog implements HttpSessionBindingListener {
private String breed; public Dog(String breed) {
this.breed = breed;
} public String getBreed() {
return breed;
} @Override
public void valueBound(HttpSessionBindingEvent httpSessionBindingEvent) {
// 如果我被增加到某个session就执行这段代码
} @Override
public void valueUnbound(HttpSessionBindingEvent httpSessionBindingEvent) {
// 如果我从某个session移除,就执行这段代码
}
}
我们的实际数据通常是存储在数据库中的,因此,我们一般需要使用数据库信息来填充Dog对象的字段,但是问题是,我们怎么保持数据库记录和Dog对象的信息同步?另外,什么时候让它们同步?
很显然,我们“要用对象”和“不用对象”的时刻(在这之间,对象可能发生改变)就是我们同步的时刻,我们如何知道对象什么时候被用or不用?这就需要一个监听者——HttpSessionBindingListener。
【Head First Servlets and JSP】笔记8:监听者的更多相关文章
- 【Head First Servlets and JSP】笔记23:Expression Language(EL) 完全攻略
基本上是<Head First Servlets and JSP>内容的整理.扩充.顺便推荐一个供参考的JSP教程:JSP Tutorial内容很全面,还有一些有趣的实例. 完整代码参考 ...
- 【Head First Servlets and JSP】笔记7:如何创建一个全局的dog?
重定向与请求分派 “局部”参数——ServletConfig——servlet初始化参数 “全局”参数——ServletContext——上下文初始化参数 Web app的“构造器”——Servlet ...
- Javaweb上下文监听者ServletContextListener
一个监听类,不是一个servlet或JSP,它能监听ServletContext一生中的两个关键事件:初始化(创建)和撤销.这个类实现了javax.servlet.ServletContextList ...
- Web应用中监听者的通知顺序按照DD中的定义顺序
Web应用中监听者的通知顺序按照DD中的定义顺序: XML: <?xml version="1.0" encoding="UTF-8"?> < ...
- EntityFramework之监听者判断SQL性能指标
前言 当我们利用EF这个ORM框架时,我们可能会利用LINQ或者原生的SQL语句来进行数据操作,此时我们无法确定我们的代码是否会给数据库带来一定的负载,当给数据库带来一定的压力时,由于项目中对数据进行 ...
- Java Listener pattern 监听者模式
Java Listener pattern 监听者模式 2016-5-12 监听者模式(观察者模式)能降低对象之间耦合程度.为两个相互依赖调用的类进行解耦. 便于进行模块化开发工作.不同模块的开发者可 ...
- 在java.util中有EventListener接口:所有事件监听者都要实现这个接口。
在java.util中有EventListener接口:所有事件监听者都要实现这个接口. java.util中有EventObject类:所有的事件都为其子类. 事件范例在\CoreJava\Gi ...
- 在C++11中实现监听者模式
参考文章:https://coderwall.com/p/u4w9ra/implementing-signals-in-c-11 最近在完成C++大作业时,碰到了监听者模式的需求. 尽管C++下也可以 ...
- 【Head First Servlets and JSP】笔记 27: web 应用安全
典型的安全问题:假冒者.窃听者.非法升级者 认证方式: Base64 .摘要认证 .客户端证书.表单认证,重点熟悉摘要算法( HASH . MD5 等) 安全机制:授权.认证.数据完整性.机密性 80 ...
随机推荐
- 游戏开发之coco2dx ---简化提炼tolua
http://www.cnblogs.com/gl5773477/p/4234613.html
- Classification week3: decision tree 笔记
华盛顿大学 machine learnign :classification week 3 笔记 第二步: 注: 其中 ,mistake 的计算方法: 给定一个节点的数据集M,对每个特征hi(x),根 ...
- poj 1270(dfs+拓扑排序)
题目链接:http://poj.org/problem?id=1270 思路:就是一简单的dfs+拓扑排序,然后就是按字典序输出所有的情况. http://paste.ubuntu.com/59872 ...
- Ubuntu安装特定版本安装包
Ubuntu安装特定版本安装包可以用aptitude,aptitude是apt-get的高级版,使用起来更强大. aptitude install package=version 比如我要安装2.6. ...
- <转载> Jquery的使用技巧-实用!
1.使用方法在需要使用JQuery的页面中引入JQuery的js文件即可.例如:<script type="text/javascript" src="js/jqu ...
- tf.name_scope()和tf.variable_scope()
https://blog.csdn.net/gqixf/article/details/80191918 https://blog.csdn.net/uestc_c2_403/article/deta ...
- commit Commit changes to stable storage 对变化提交
Python36\site-packages\pymysql\connections.py # Python implementation of the MySQL client-server pro ...
- 整理前端css/js/jq常见问题及解决方法(1)
1. 兼容ie8圆角的解决方法:下载ie-css3.htc文件在css中加入behavior:url(ie-css3.htc);z-index:3; position:relative 即可 2. 去 ...
- Python3.6全栈开发实例[004]
4.计算传入函数的字符串中, 数字.字母.空格以及其他内容的个数,并返回结果. s1 = 'wan%$#(gwdwq\nwdhuaiww3 w02041718' def func1(s1): dic ...
- hive批量执行sql命令及使用小技巧
root@hadoop-senior hive-0.13.1]$ bin/hive -helpusage: hive -d, --define <key=value> Variable s ...