1.Filter過濾器

2.案例1_登錄驗證

3.過濾敏感詞匯

4.代理

*****
### **第一堂課**
**本節知識點**
1.1 今日內容
1.2 Filter_概述
1.3 Filter快速入門
1.4 Filter_細節_web.xml配置方式
**本節目標**
1.理解Filter的概念和作用
2.能夠快速寫出一個Filter的demo
3.知道在web.xml中如何配置Filter
#### **1.1今日內容**
1. Filter:過濾器
2. Listener:監聽器
#### **1.2Filter_概述**
1. 概念:
* 生活中的過濾器:凈水器,空氣凈化器,土匪、
* web中的過濾器:當訪問服務器的資源時,過濾器可以將請求攔截下來,完成一些特殊的功能。
* 過濾器的作用:
* 一般用于完成通用的操作。如:登錄驗證、統一編碼處理、敏感字符過濾...
*****
#### **1.3Filter快速入門**
##### **1.3.1知識概述**
1. 步驟:
1. 定義一個類,實現接口Filter
2. 復寫方法
3. 配置攔截路徑
1. web.xml
2. 注解
練習
```
@WebFilter("/\*")//訪問所有資源之前,都會執行該過濾器
public class FilterDemo1 implements Filter {
????@Override
????public void init(FilterConfig filterConfig) throws ServletException {
????}
????@Override
????public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
????????System.out.println("filterDemo1被執行了....");
????????//放行
????????filterChain.doFilter(servletRequest,servletResponse);
????}
????@Override
????public void destroy() {
????}
```
*****
#### **1.4Filter_細節_web.xml配置方式**
##### **1.4.1知識概述**
1. web.xml配置
```
<filter>
<filter-name>demo1</filter-name>
<filter-class>cn.itcast.web.filter.FilterDemo1</filter-class>
</filter>
<filter-mapping>
<filter-name>demo1</filter-name>
<!-- 攔截路徑 -->
<url-pattern>/*</url-pattern>
</filter-mapping>
```
*****
### **第二堂課**
**本節知識點:**
2.1 Filter_細節_執行流程&生命周期
2.2 Filter_細節_過濾器攔截路徑配置
2.3 Filter_細節_過濾器攔截方式配置
**本節目標 :**
1.能夠說出Filter的執行流程和生命周期
2.能夠配置過濾器的攔截路徑
3.能夠配置過濾器的攔截方式
*****
#### 2.1**Filter_細節_執行流程&生命周期**
##### **2.1.1知識概述**
1.過濾器執行流程
1. 執行過濾器
2. 執行放行后的資源
3. 回來執行過濾器放行代碼下邊的代碼
2. 過濾器生命周期方法
1. init:在服務器啟動后,會創建Filter對象,然后調用init方法。只執行一次。用于加載資源
2. doFilter:每一次請求被攔截資源時,會執行。執行多次
3. destroy:在服務器關閉后,Filter對象被銷毀。如果服務器是正常關閉,則會執行destroy方法。只執行一次。用于釋放資源
???
#### **2.2 Filter_細節_過濾器攔截路徑配置**
1. 過濾器配置詳解
* 攔截路徑配置:
1. 具體資源路徑: /index.jsp 只有訪問index.jsp資源時,過濾器才會被執行
2. 攔截目錄: /user/* 訪問/user下的所有資源時,過濾器都會被執行
3. 后綴名攔截: *.jsp 訪問所有后綴名為jsp資源時,過濾器都會被執行
4. 攔截所有資源:/* 訪問所有資源時,過濾器都會被執行
#### **2.3 Filter_細節_過濾器攔截方式配置**
* 攔截方式配置:資源被訪問的方式
* 注解配置:
* 設置dispatcherTypes屬性
1. REQUEST:默認值。瀏覽器直接請求資源
2. FORWARD:轉發訪問資源
3. INCLUDE:包含訪問資源
4. ERROR:錯誤跳轉資源
5. ASYNC:異步訪問資源
* web.xml配置
* 設置<dispatcher></dispatcher>標簽即可
### **第三堂課**
**本節知識點:**
3.1 Filter_細節_過濾器鏈(多個過濾器)
3.2 Filter_案例1_登錄驗證_分析
3.3 Filter_案例1_登錄驗證_代碼實現
**本節目標 :**
*****
1.理解過濾器鏈的概念和執行順序
2.完成登陸驗證案例
#### **3.1Filter_細節_過濾器鏈(多個過濾器)**
過濾器鏈(配置多個過濾器)
*執行順序:如果有兩個過濾器:過濾器1和過濾器2
1. 過濾器1
2. 過濾器2
3. 資源執行
4. 過濾器2
5. 過濾器1
* 過濾器先后順序問題:
1. 注解配置:按照類名的字符串比較規則比較,值小的先執行
* 如: AFilter 和 BFilter,AFilter就先執行了。
2. web.xml配置: 誰定義在上邊,誰先執行
*****
#### 3.2**Filter_案例1_登錄驗證_分析**
##### **3.2.1知識概述**
1. 案例1_登錄驗證
* 需求:
1. 訪問case案例的資源。驗證其是否登錄
2. 如果登錄了,則直接放行。
3. 如果沒有登錄,則跳轉到登錄頁面,提示"您尚未登錄,請先登錄"。
*****
#### 3.3**Filter_案例1_登錄驗證_代碼實現**
*****
### **第四堂課**
**本節知識點:**
4.1 Filter_案例2_過濾敏感詞匯_分析
4.2動態代理1_基本實現步驟
**本節目標 **:
1.理解過濾敏感詞匯案例的需求
2.理解動態代理實現的基本步驟
*****
#### **4.1Filter_案例2_過濾敏感詞匯_分析**
##### **4.1.1知識概述**
2. 案例2_敏感詞匯過濾
* 需求:
1. 對case案例錄入的數據進行敏感詞匯過濾
2. 敏感詞匯參考《敏感詞匯.txt》
3. 如果是敏感詞匯,替換為 ***
* 分析:
1. 對request對象進行增強。增強獲取參數相關方法
2. 放行。傳遞代理對象
*****
#### **4.2動態代理1_基本實現步驟**
* 增強對象的功能:
* 設計模式:一些通用的解決固定問題的方式
1. 裝飾模式
2. 代理模式
* 概念:
1. 真實對象:被代理的對象
2. 代理對象:
3. 代理模式:代理對象代理真實對象,達到增強真實對象功能的目的
* 實現方式:
1. 靜態代理:有一個類文件描述代理模式
2. 動態代理:在內存中形成代理類
* 實現步驟:
1. 代理對象和真實對象實現相同的接口
2. 代理對象 = Proxy.newProxyInstance();
3. 使用代理對象調用方法。
4. 增強方法
*****
### **第五堂課**
**本節知識點:**
5.1 動態代理2_增強方法
5.2 Filter_案例2_過濾敏感詞匯_實現
**本節目標 :**
能夠使用動態代理增強方法
完成過濾敏感詞匯案例
*****
#### 5.1**動態代理2_增強方法**
##### **5.1.1知識概述**
* 增強方法:
1. 增強參數列表
2. 增強返回值類型
3. 增強方法體執行邏輯
*****
#### 5.2**Filter_案例2_過濾敏感詞匯_實現**
##### **5.2.1知識概述**
實現過濾敏感詞匯案例
*****
### **第六堂課**
本節知識點:
6.1 練習過濾敏感詞匯案例
6.2 Listener_概述
6.3 Listener_ServletContextListener使用
**本節目標 :**
理解ServletContextListener
#### **6.1練習過濾敏感詞匯案例**
*****
#### **6.2Listener_概述**
##### **6.2.1知識概述**
* 概念:web的三大組件之一。
* 事件監聽機制
* 事件 :一件事情
* 事件源 :事件發生的地方
* 監聽器 :一個對象
* 注冊監聽:將事件、事件源、監聽器綁定在一起。 當事件源上發生某個事件后,執行監聽器代碼
*****
#### **6.3Listener_ServletContextListener使用**
##### **6.3.1知識概述**
* ServletContextListener:監聽ServletContext對象的創建和銷毀
* 方法:
* void contextDestroyed(ServletContextEvent sce) :ServletContext對象被銷毀之前會調用該方法
* void contextInitialized(ServletContextEvent sce) :ServletContext對象創建后會調用該方法
* 步驟:
1. 定義一個類,實現ServletContextListener接口
2. 復寫方法
3. 配置
1. web.xml
```
<listener>
<listener-class>cn.itcast.web.listener.ContextLoaderListener</listener-class>
</listener>
```
* 指定初始化參數<context-param>
2. 注解:
* @WebListener
- Java Web項目開發學習手冊
- 一、B/S開發環境搭建
- 1.1 tomcat服務器目錄結構及作用
- 1.2 在IDE開發工具上配置tomcat服務器
- 1.3 簡單web項目在tomcat服務器上運行的方法
- 1.4 開發工具設置
- 1.5 總結
- 二、Servlet技術應用
- 2.1 HttpServlet中的主要方法及應用
- 2.1.1 基于Eclipse完成一個JavaWeb項目
- 2.2 HttpRequest,HttpResponse的應用
- 2.2.1客戶端請求
- 2.2.2服務器響應
- 2.2.3Servlet HTTP 狀態碼
- 2.2.4圖片驗證碼類
- 2.2.5注冊模擬實現(帶驗證碼)
- 2.3 ServletConfig對象和ServletContext對象的概念
- 2.4 總結
- 三、JSP技術應用
- 3.1 JSP基本語法
- 3.2 JSP標簽和指令
- 3.3 JSP中的隱式對象
- 3.4 常用應用操作
- 3.4.1 JSP客戶端請求
- 3.4.2 JSP服務器響應
- 3.4.3 HTTP狀態碼
- 3.4.4 表單處理
- 3.4.5 過濾器
- 3.4.6 Cookie處理
- 3.4.7 Session處理
- 3.4.8 文件上傳
- 3.4.9 日期處理
- 3.4.10 頁面重定向
- 3.4.11 點擊量統計
- 3.4.12 自動刷新
- 3.4.13 發送郵件
- 3.5 JSP高級應用
- 3.5.1 JSP標準標簽庫(JSTL)
- 3.5.2 JSP連接數據庫
- 3.5.3 JSP XML數據處理
- 3.5.4 JSP JavaBean
- 3.5.5 自定義標簽
- 3.5.6 表達式語言
- 3.5.7 異常處理
- 3.5.8 調試
- 3.5.9 JSP國際化
- 3.6 實踐代碼
- 3.6.1 實踐代碼
- 3.6.2 項目實戰
- 3.7 總結
- 四、MVC思想的理解和搭建MVC
- 4.1 MVC設計模式的思想
- 4.2 MVC設計模式的實現步驟
- 4.3 項目實踐
- 4.4 總結
- 五、EL表達式和JSTL技術
- 5.1 EL表達式及其應用
- 5.2 常用的JSTL標簽的應用
- 5.3 項目實踐
- 5.4 總結
- 六、Cookie和Session
- 6.1 cookie對象的概念和應用
- 6.2 session對象的概念和應用
- 6.3 項目實踐
- 6.4 總結
- 七、過濾器技術應用
- 7.1 Filter的概念及應用
- 7.2 Filter、FilterChain、FilterConfig 介紹
- 7.3 用戶登錄過濾案例
- 7.4 項目實戰
- 7.5總結
- 八、異步請求技術
- 8.1 JSON數據格式
- 8.2 使用AJAX實現異步請求
- 8.3 用戶名校驗案例
- 8.4小結
- 綜合項目技術實訓
- 1.BS項目開發項目實戰
- 2.項目需求分析和系統設計
- 2.1需求分析
- 2.2類型模型設計
- 2.3原型設計
- 3.項目數據庫分析和系統設計
- 4.BS項目編程實現
- 4.1搭建框架和命名規約
- 4.2實現步驟
- 4.2.1創建實體類
- 4.2.2創建過濾器類
- 4.2.3創建工具類
- 4.2.4創建DAO接口及其實現類
- 4.2.5創建Service接口及其實現類
- 4.2.6創建測試類
- 4.2.7創建控制器類
- 5.企業開發流程規范
- 6.總結
- 九、練習題及答案
- 企業開發常用技術
- 1.Maven技術
- Java命名規范解讀
- 參考資料
- 開發中常用的應用服務器和Web服務器