過濾器和監聽器筆記

過濾器和監聽器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不是關閉資源,是將鏈接對象歸還到鏈接池中
相關文章
相關標籤/搜索