过滤器和监听器笔记

过滤器和监听器java

l  Servlet规范小程序

  • Ø Servlet         动态网页技术
  • Ø Filter技术       过滤器
  • Ø Listener技术       监听器

l  Jsp规范tomcat

 

l  Filter也是运行在服务器端的小程序,优于servlet、jsp等执行,起到拦截做用服务器

 

l  核心方法:doFilter网络

1)     参数1:ServletRequest  请求,使用时,通常须要向下转型HttpServletRequest req = (HttpServletRequest) request;session

2)     参数2:ServletResponse 响应,使用时,也须要向下转型HttpServletResponse resp = (HttpServletResponse)app

3)     参数3:FilterChain     这个对象就是用来决定是否放行的对象,放行时,调用该对象的doFilter(req, resp);jsp

l  网络邮箱服务器测试

  • Ø 邮件发送代码:

1)     导包:spa

 

 

2)     修改相关配置:

 1 #邮件发送协议
 2 
 3 mail.transport.protocol=SMTP
 4 
 5 #邮件发送服务器地址
 6 
 7 mail.host=smtp.163.com
 8 
 9 #邮件发送者(以谁的名义发送邮件)
10 
11 from=18105185234@163.com
15 #发送邮件时,进行受权验证 16 17 mail.smtp.auth=true 18 19 #受权帐号:通常为发送者邮箱地址@以前的字符串 20 21 username=18105185234 22 23 #受权密码:非帐号密码(进入邮箱设置) 24 25 password=jihuo666

3)     Java代码

 1 package test;
 2 
 3 import utils.MailUtils;
 4 
 5  
 6 
 7 public class SendTest {
 8 
 9    public static void main(String[] args) {
10 
11       MailUtils.sendMail("18105185234@163.com", "测试主题", "测试内容。。。");
12 
13    }
14 
15 }

 

l  监听器

  • Ø javaWeb中的监听器:主要是用来监听request、session、application(ServletContext)三个对象,总共8种监听器

1)     监听request、session、application的建立和销毁

2)     监听request、session、application中的数据的变化

3)     监听session中Bean对象的保存和移除,不一样于session中的数据的变化,针对的是实体Bean对象

4)     session的钝化和活化监听

a)     钝化:服务器正常关闭时,将session中的数据(实现了序列化接口java.io.Serializable的对象)序列化到服务器中的tomcat\work\Catalina\localhost\项目名\SESSION.ser)

b) 活化:在服务器再次启动时,使用反序列化技术将SESSION.ser文件中的数据再读取到服务器的内存(session)中!

l  定时任务实现

  • Ø 须要使用到Timer类

     

     

  • Ø 代码演示
 1 package demo;
 2 
 3  
 4 
 5 import java.util.Timer;
 6 
 7 import java.util.TimerTask;
 8 
 9  
10 
11 /**
12 
13  * 定时器演示
14 
15  */
16 
17 public class TimerDemo {
18 
19    public static void main(String[] args) {
20 
21       // 每隔1秒打印一次hello
22 
23       // 1. 建立定时器
24 
25       Timer timer = new Timer();
26 
27       // 2. 建立任务
28 
29       TimerTask task = new TimerTask() {
30 
31         public void run() {
32 
33            System.out.println("hello");
34 
35         }
36 
37       };
38 
39       // 3. 下发任务:3秒以后,每隔1秒执行一次
40 
41       timer.schedule(task, 3000, 1000);
42 
43    }
44 
45 }

 

l  附加内容

  • Ø 路径的拼接

例如:' "+path+"/login.jsp'  == > “ “ + xxx + ”/login.jsp”

  • Ø 链接池中的close不是关闭资源,是将链接对象归还到链接池中
相关文章
相关标签/搜索