Filter過濾器
filter過濾器用於web專案在請求轉發與響應資料時對資料或邏輯進行新增一系列更改
一:三個方法
1、init():初始化,在過濾器開始時執行init方法體內業務邏輯
2、doFilter():伺服器與客戶端之間請求響應時進行字符集、訪問地址、引數等一系列判斷
3、destroy():此方法在doFilter方法後執行。該方法不會在關閉瀏覽器或客戶端時銷燬。等待整個專案關閉時才會銷燬。
二:doFilter的使用(編碼字符集和位址列的判斷)
//向下還原
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse resp = (HttpServletResponse)response;
//設定編碼字符集
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html");
//建立session物件用於session是否存在的判斷
HttpSession session = req.getSession();
//獲取當前瀏覽器中訪問的地址
String requestURI = req.getRequestURI();
System.out.println("總地址"+requestURI);
//獲取當前應用和當前訪問全路徑
String contextPath = req.getContextPath();
System.out.println("訪問地址"+contextPath);
//獲取當前訪問的頁面或者servlet名字
String subPath = requestURI.substring(contextPath.length());
System.out.println("擷取之後的地址"+subPath);
//判斷是否是登入介面或者是登入的servlet
if(subPath.contains("Login.jsp") || subPath.contains("loginServlet")){
//chain方法
chain.doFilter(req, resp);
}else{
//判斷session是否為null,不等於空則代表當前有使用者登入
if(session.getAttribute("ename")!=null){
chain.doFilter(req, resp);
}else{
//如果判斷之後沒有登入跳轉到登入介面
resp.sendRedirect("Login.jsp");
}
}
三:過濾器原理圖
相關文章
- PHP 過濾器(Filter)PHP過濾器Filter
- Java Filter過濾器JavaFilter過濾器
- lucene Filter過濾器Filter過濾器
- Filter過濾器的使用Filter過濾器
- JavaWeb 中 Filter過濾器JavaWebFilter過濾器
- 布隆過濾器(Bloom Filter)過濾器OOMFilter
- 布隆過濾器 Bloom Filter過濾器OOMFilter
- Bloom Filter 布隆過濾器OOMFilter過濾器
- servlet的過濾器filter類Servlet過濾器Filter
- angular內建過濾器-filterAngular過濾器Filter
- filter過濾Filter
- 攔截器(Interceptor)與過濾器(Filter)過濾器Filter
- Vue定義全域性過濾器filterVue過濾器Filter
- HBase Filter 過濾器之 ValueFilter 詳解Filter過濾器
- 布隆過濾器(Bloom Filter)詳解過濾器OOMFilter
- 如何在vue中使用過濾器filterVue過濾器Filter
- Java 中的 Filter 過濾器詳解JavaFilter過濾器
- 走進AngularJs(七) 過濾器(filter)AngularJS過濾器Filter
- Filter(過濾器)與Listener(監聽器)詳解Filter過濾器
- 【Java基礎】--filter過濾器原理解析JavaFilter過濾器
- AngularJS教程二十一—— 過濾器(filter)AngularJS過濾器Filter
- 【SSO】--單點登入之過濾器(filter)過濾器Filter
- 過濾器 Filter 與 攔截器 Interceptor 的區別過濾器Filter
- Elasticsearch——filter過濾查詢ElasticsearchFilter
- JavaWeb - 【Filter】敏感詞過濾JavaWebFilter
- 微信小程式 使用filter過濾器幾種方式微信小程式Filter過濾器
- 布隆過濾器(Bloom Filter)的java實現過濾器OOMFilterJava
- 探索C#之布隆過濾器(Bloom filter)C#過濾器OOMFilter
- Laravel 模型過濾(Filter)設計Laravel模型Filter
- OGG -FILTER 引數過濾Filter
- Filter不過濾CSS和JSFilterCSSJS
- Solon 的過濾器 Filter 和兩種攔截器 Handler、 Interceptor過濾器Filter
- Web中的監聽器【Listener】與過濾器【Filter】 例項Web過濾器Filter
- java中listFiles(Filefilter filter)檔案過濾器的實現過程JavaFilter過濾器
- OGG 行過濾filter 引數Filter
- Django(69)最好用的過濾器外掛Django-filterDjango過濾器Filter
- 雜湊表擴充套件—布隆過濾器(Bloom Filter)套件過濾器OOMFilter
- 使用Filter介面編寫過濾器解決post亂碼Filter過濾器