[TOC]
# Filter的API詳解
## filter生命周期及其與生命周期
Filter接口有三個方法,并且這個三個都是與Filter的生命相關的方法
init(Filterconfig):代表filter對象初始化方法 filter對象創建時執行
doFilter(ServletRequest,ServletResponse,FilterChain):代表filter執行過濾的核心方法,如果某資源在已經被配置到這個filter進行過濾的話,那么每次訪問這個資源都會執行doFilter方法
destory():代表是filter銷毀方法 當filter對象銷毀時執行該方法
Filter對象的生命周期:
Filter何時創建:服務器啟動時就創建該filter對象
Filter何時銷毀:服務器關閉時filter銷毀
## Filter的API詳解
1)init(FilterConfig)
其中參數config代表 該Filter對象的配置信息的對象,內部封裝是該filter的配置信息

2)destory()方法
filter對象銷毀時執行
3)doFilter方法
doFilter(ServletRequest,ServletResponse,FilterChain)
其中的參數:
ServletRequest/ServletResponse:每次在執行doFilter方法時 web容器負責創建一個request和一個response對象作為doFilter的參數傳遞進來。該request個該response就是在訪問目標資源的service方法時的request和response。
**FilterChain:過濾器鏈對象,通過該對象的doFilter方法可以放行該請求**
# Filter的配置

url-pattern配置時
1)完全匹配 /sertvle1
2)目錄匹配 `/aaa/bbb/* `----最多的
`/user/*`:訪問前臺的資源進入此過濾器
`/admin/*`:訪問后臺的資源時執行此過濾器
3)擴展名匹配` *.abc *.jsp`
注意:url-pattern可以使用servlet-name替代,也可以混用
# dispatcher:訪問的方式
REQUEST:默認值,代表直接訪問某個資源時執行filter
FORWARD:轉發時才執行filter
INCLUDE: 包含資源時執行filter
ERROR:發生錯誤時 進行跳轉是執行filter
# Filter的作用
1)公共代碼的提取
2)可以對request和response中的方法進行增強(裝飾者模式/動態代理)
3)進行權限控制
- 基礎
- 編譯和安裝
- scanner類(鍵盤錄入)
- Random類(隨機數)
- 數組
- 方法
- 類
- ArrayList集合
- char與int
- eclipse
- IDEA
- 變量與常量
- 常用API
- String,StringBuffer,StringBuilder
- 正則,Date,DateFormat,Calendar
- 包裝類,System,Math,Arrays,BigInteger,BigDecimal
- 集合,迭代器,增強for,泛型
- List,set,判斷集合唯一
- map,Entry,HashMap,Collections
- 異常
- IO
- File
- 遞歸
- 字節流
- 字符流
- IO流分類
- 轉換流
- 緩沖流
- 流的操作規律
- properties
- 序列化流與反序列化流
- 打印流
- commons-IO
- IO流總結
- 多線程
- 線程池
- 線程安全
- 線程同步
- 死鎖
- lock接口
- ThreadLoad
- 等待喚醒機制
- 線程狀態
- jdbc
- DBUtils
- 連接池DBCP
- c3p0連接池
- 網絡編程
- 多線程socket上傳圖片
- 反射
- xml
- 設計模式
- 裝飾器模式
- web service
- tomcat
- Servlet
- response
- request
- session和cookie
- JSP
- EL
- JSTL
- 事務
- 監聽器Listener
- 過濾器Filter
- json
- linux安裝軟件
- 反射詳解
- 類加載器和注解
- 動態代理
- jedis
- Hibernate
- 簡介
- 創建映射文件
- Hibernate核心配置文件
- 事務和增刪改查
- HibernateUtils
- 持久化對象的三種狀態
- 檢索方式
- query
- Criteria
- SQLQuery
- 持久化類
- 主鍵生成策略
- 緩存
- 事務管理
- 關系映射
- 注解
- 優化
- struts2
- 搭建
- 配置詳解
- Action
- 結果跳轉方式
- 訪問ServletAPI方式
- 如何獲得參數
- OGNL表達式
- valueStack 值棧
- Interceptor攔截器
- spring
- 導包
- IOC和DI
- Bean獲取與實例化
- Bean屬性注入
- spring注解
- 注解分層
- junit整合
- aop
- 動態代理實現
- cglib代理實現
- aop名詞
- spring的aop
- aop-xml詳解
- aop-注解詳解
- 代理方式選擇
- jdbcTemplate
- spring事務管理
- 回滾注意
- 事務傳播屬性
- MyBatis
- MyBatis簡介
- 入門程序
- 與jdbc hibernate不同
- 原始Dao開發
- Mapper動態代理方式
- SqlMapConfig.xml配置文件
- 輸入參數pojo包裝類
- resultMap
- 動態sql
- 一對一關聯
- 一對多
- 整合spring
- 逆向工程
- maven
- maven簡介
- 倉庫
- maven目錄結構
- maven常用命令
- 生命周期
- eclipse中maven插件
- 入門程序
- 整合struct
- 依賴范圍
- 添加插件
- idea配置
- jar包沖突
- 分模塊開發
- 構建可執行的jar包(包含依賴jar包)
- springMVC
- 處理流程
- java面試
- java版本升級
- java1-8版本變更
- java9新特性
- 鎖
- java資料
- idea
- jdk版本切換
- log4j
- 入門實例
- 基本使用方法
- Web中使用Log4j
- spring中使用log4j
- java代碼優化