日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

JavaWeb之过滤器(Filter)

發布時間:2025/4/16 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaWeb之过滤器(Filter) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、過濾器簡介:

  過濾器(Filter)是JavaWeb中最常用到的技術,常用于URL的權限訪問控制,編碼轉換,錯誤頁面跳轉,攔截過濾圖片,html文件,指定文字等功能。

二、過濾器如何工作:

  大致過程:在客戶端發送一個請求時,即HttpServletRequest或HttpServletResponse到達Servlet之前,Filter會將其攔截下來,并對其進行數據檢查和相應的過濾后,再進行放行或相應的跳轉,然后再生成響應返回時,Filter再次對服務器的響應進行最后處理并到達視圖層,總的來講: 請求 ——> 過濾 ——> 響應 ——> 過濾 ——> 顯示。?在一個web應用中,可以開發編寫多個Filter,這些Filter組合起來稱之為一個Filter鏈。web服務器根據Filter在web.xml文件中的注冊順序,決定先調用哪個Filter,如果使用的是注解方式來注冊,那么執行順序應該是過濾器的文件名的首字母的順序。當第一個Filter的doFilter方法被調用時,web服務器會創建一個代表Filter鏈的FilterChain對象傳遞給該方法。在doFilter方法中,開發人員如果調用了FilterChain對象的doFilter方法,則web服務器會檢查FilterChain對象中是否還有filter,如果有,則調用第2個filter,如果沒有,則調用目標資源。

  生命周期:Filter接口實現類中要實現三個方法:init方法,doFilter方法,destroy方法。

  (1) init(FilterConfig):

    初始化接口,在web服務器啟動時Filter初始化被調用,它與Servlet的init方法的作用是一樣的,FilterConfig能得到容器的初始化參數及相應的一些數據。

1 String getFilterName();//得到filter的名稱。 2 String getInitParameter(String name);//返回在部署描述中指定名稱的初始化參數的值。如果不存在返回null. 3 Enumeration getInitParameterNames();//返回過濾器的所有初始化參數的名字的枚舉集合。 4 public ServletContext getServletContext();//返回Servlet上下文對象的引用。

  (2) doFilter(ServletRequest, ServletResponse, FilterChain):

    每個用戶的請求進來時這個方法都會被調用,這個方法會在Servlet的service方法之前被調用,是過濾器的主體。FilterChain代表當前的整個請求鏈,通過調用FilterChain.doFilter可以將請求繼續傳遞下去,如何攔截這個請求,只需不調用該方法,那么這個請求就直接返回。所以Filter是一種責任鏈設計模式。doFilter可以做到:調用目標資源之前,讓一段代碼執行。 是否調用目標資源(即是否讓用戶訪問web資源)。web服務器在調用doFilter方法時,會傳遞一個filterChain對象進來,filterChain對象是filter接口中最重要的一個對象,它也提供了一個doFilter方法,開發人員可以根據需求決定是否調用此方法,調用該方法,則web服務器就會調用web資源的service方法,即web資源就會被訪問,否則web資源不會被訪問。

  (3) destroy

    Filter對象創建后會駐留在內存,當web應用移除或服務器停止時才銷毀,當Filter對象被銷毀時,這個方法被調用。值得注意的時,根據上面所提到的響應時還會進行一次過濾,所以當Web容器調用這個方法之后,容器還會再調用一次doFilter方法。

三、簡單實例:
  在這里我們用的是Servlet3.0新增的注解方式來代替以前使用的xml配置:

package Filter;import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.annotation.WebInitParam; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;@WebFilter(filterName = "LoginFilter", urlPatterns = "/*", //對所有url進行過濾initParams = {@WebInitParam(name = "url", value = "index.jsp;LoginServlet;error.jsp"), @WebInitParam(name = "encoding", value = "UTF-8")}) public class LoginFilter implements Filter {private FilterConfig config = null;public void destroy() {config = null;}public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {HttpServletRequest request = (HttpServletRequest)req;HttpServletResponse response = (HttpServletResponse)resp;//編碼轉換過濾String charset = config.getInitParameter("encoding");request.setCharacterEncoding(charset);response.setCharacterEncoding(charset);//對登陸頁面及指定頁面不進行過濾String url = config.getInitParameter("url");String[] urlList = url.split(";");for (String urlFilt : urlList) {if (request.getRequestURI().indexOf(urlFilt) != -1) {chain.doFilter(req, resp);return;}}//判斷用戶是否登錄if (request.getSession().getAttribute("username") != null) {chain.doFilter(req, resp);} else {response.sendRedirect("../index.jsp");}}public void init(FilterConfig config) throws ServletException {this.config = config; //獲取初始化參數 }}

?

?

?

一些知識來源:https://www.cnblogs.com/coderland/p/5902878.html

轉載于:https://www.cnblogs.com/chenloveslife/p/8946260.html

總結

以上是生活随笔為你收集整理的JavaWeb之过滤器(Filter)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 视频二区中文字幕 | 亚洲精品午夜 | 4438五月天 | 免费播放毛片 | 免费观看日韩毛片 | 人妻无码一区二区三区免费 | 国模av| www.香蕉网 | 成人无码av片在线观看 | 欧美一区二区三区色 | 久久久久久91亚洲精品中文字幕 | 美国成人免费视频 | 婷婷亚洲激情 | 亚洲一区二区综合 | 丰满人妻一区二区三区53 | 一本色道久久综合亚洲精品按摩 | 中文字幕 日本 | 久久高清免费 | 久久中文一区 | 一区二区三区亚洲视频 | 视频在线不卡 | 久久久久久久久久99精品 | 久久综合狠狠综合久久综合88 | 日韩激情视频一区二区 | 日日摸日日碰 | 91精品欧美一区二区三区 | 在线观看毛片av | 都市激情校园春色亚洲 | 久久夜色精品国产欧美乱极品 | 男生脱女生衣服 | 影视av| 日韩人妻无码精品综合区 | 日韩porn| 琪琪伦伦影院理论片 | 美乳人妻一区二区三区 | 高清不卡毛片 | 午夜一区二区三区免费观看 | 日韩亚洲国产精品 | av中亚 | 日韩精品――色哟哟 | 第九色 | 久久久天堂 | 久久久国产精品成人免费 | 91午夜精品亚洲一区二区三区 | 欧美在线视频二区 | 久久国产精品一区 | 成人欧美一区二区三区小说 | 亚洲激情综合网 | 噜噜噜色 | 日本老熟妇毛茸茸 | 91不卡视频| 国产一区二区视频播放 | 日本少妇喷水视频 | 亚洲少妇自拍 | 69国产精品视频 | 五月99久久婷婷国产综合亚洲 | 成人爽站w47pw | 超碰人人插 | 国产欧美一级片 | 中出亚洲 | 中文字幕人妻一区二区在线视频 | 中文字幕在线视频不卡 | 精品国产青草久久久久96 | 国内老熟妇对白hdxxxx | 水密桃av | 国产精品二区一区二区aⅴ污介绍 | 天堂av2014| 成人动漫av | 日韩亚洲视频在线观看 | 女同另类之国产女同 | 日韩福利网 | 在线一区二区三区视频 | 欧美日韩高清一区 | 国产精品综合视频 | 亚洲天堂伊人网 | 啊av在线 | 最好看的mv中文字幕国语电影 | 国内性爱视频 | 奇米网7777 | 碧蓝之海动漫在线观看免费高清 | 国产偷人妻精品一区 | 国内毛片毛片毛片 | 先锋资源国产 | 亚洲欧美国产精品专区久久 | av在线不卡网站 | 荷兰av | 中国a一片一级一片 | 伊人开心网 | 天堂在线免费观看 | 欧美色图另类 | 30一40一50老女人毛片 | 韩国精品在线观看 | 一区二区三区四区亚洲 | 久草91 | 免费黄色成人 | 大尺度摸揉捏胸床戏视频 | 网站黄在线 | 超碰人人射| www.国产精品 |