javaWeb-07-listener监听器

今日案例:
发送生日祝福邮件

案例-发送生日祝福邮件
需求:
查询今天过生日的会员,定时的给过生日的会员发送生日祝福邮件.

技术分析:
监听器
任务:事件调度(定时器)—理解
邮件
/

监听器(listener):
什么是监听器?
在java中:
监听器:本质上就是一个java类,这个类用来监视其它javabean的状态变化
servlet:本质上就是一个java类,这个类用来接收和响应页面数据的

	    服务器端的3个技术: servlet,listener,filter
 
 
 监听器的作用?
       作用:用来监听web中的三个对象的(servletContext,Servletrequest,Httpsession)
	
	分类:
	监听三个对象的创建和销毁   
	监听三个对象属性的变化
	监听javabean在session中的状态
         
 
 如何使用监听器?
	   java提供的常见监听器: 全部是接口
		     监听三个对象的创建和销毁:
				ServletContextListener(掌握)
				ServletRequestListener(了解)
				HttpSessionListener(了解)
					
		     监听三个对象属性的变化:
				ServletContextAttributeListener(了解)
				ServletRequestAttributeListener(了解)
				HttpSessionAttributeListener(了解)

		     监听javabean在session中的状态:
			        HttpSessionBindingListener(监听javabean是绑定到了session中还是从session中移除了)				
				HttpSessionActivationListener(监听javabean活化还是钝化)
						钝化(长时间不用):session带着javabean序列化到磁盘上
						活化:session带着javabean从磁盘上又回到了服务器内存中

入门程序:
	编写一个监听器: 监听ServletContext对象的创建和销毁
		1.创建一个类 实现接口(ServletContextListener)
		2.在web.xml里面编写配置文件信息(大部分监听器需要配置)  (告诉tomcat我自己的类是一个listener)   
		<listener>
			<listener-class>监听器的全限定名</listener-class>
		</listener>
               

		servletContext的创建: 服务器启动为每一个项目创建一个对应的servletContext对象
		servletContext的销毁: 服务器正常关闭的时候或则项目从服务器中移除

主要的作用:
	在服务器启动的时候就加载框架的一些配置信息

监听ServletRequest的创建和销毁
	
	request的创建: 请求服务器的时候创建request对象
	 
	request的销毁: 响应回去的时候销毁request对象


监听HttpSession的创建和销毁
	
	session的创建:
		   java认为第一次调用request.getSession()的时候创建serssion对象
		
	session的销毁:(3种)
		1 超时销毁(默认30分钟)
		2 非正常关闭(断电)
		3 手动销毁
			session.invalidate();

监听三个对象属性的变化: 监听的是域对象方法中的属性
	         域对象中添加属性
		 域对象中覆盖属性
		 域对象中删除属性

 后面2个域对象操作相同

监听javabean在session中的状态(了解)	
	特殊注意:
		不需要在web.xml中配置,只需要javabean去实现接口即可
	
	HttpSessionBindingListener(javabean是绑定到了session中还是从session中移除了)
	
	
	HttpSessionActivationListener(javabean活化还是钝化)--例子正常关闭服务器
		钝化:session带着javabean序列化到磁盘上
		活化:session带着javabean从磁盘上又回到了服务器内存中

时间调度:
Timer:时间调度
构造方法:
new Timer()
常用方法:
void schedule(TimerTask task, long delay, long period)
延迟多长时间后 开始执行task任务,间隔多长时间再次执行

	void schedule(TimerTask task, Date firstTime, long period)
		指定第一次执行tack的时间,间隔多长时间再次执行
	



日期格式化:
	    SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
	    Date date=format.parse("2016-12-05 18:25:00");  //将字符串日期变成日期类型

	    SimpleDateFormat format=new SimpleDateFormat("MM-dd");
	    String date=format.format(new Date()); //获取当前时间的月份和日期;

邮件:
概念:
邮件的客户端:可以只安装在电脑上的也可以是网页形式的
网页版:session过期
pc端安装客户端

	邮件服务器:起到邮件的接受与推送的作用
	
	http协议    浏览器--服务器
	
	邮件协议:数据传输的格式   
		发送:smtp
		接受:pop/pop3/imap
	
	(jack给rose发邮件)

java发送邮件(了解)—开发中使用的都是工具类
步骤:
1.导入jar包 (mail.jar)
2 三个步骤
1 获得邮箱服务的连接(会话对象)
2 创建邮件对象
3 发送邮件

/
步骤分析:
1.数据库和表
create database day23;
use day23;
create table user(
id int primary key auto_increment,
username varchar(20),
birthday date,
email varchar(128)
);

		insert into user values(null,'jack','1980-12-07','jack@ee237.com');
		insert into user values(null,'rose','1977-12-07','rose@ee237.com');
		insert into user values(null,'tom','1983-08-16','tom@ee237.com');
		insert into user values(null,'lucy','1991-09-16','bbb@ee237.com');
		
		
	2.新建项目
		导入jar包 工具类  配置文件
	3.编写一个监听器(ServletContextListener)
	4.在初始化方法中编写代码
	5.创建一个时间调度
		每天发送生日祝福邮件
			task:获取当日过生日的会员
				获取用户列表(调用service)
				遍历list
				给每一个用户发送邮件
			间隔:一天
	
	
	6.sql写法:
		select * from user where birthday like '%12-07%'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值