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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Servlet】Filter过滤器详解、使用示例

發布時間:2024/2/28 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Servlet】Filter过滤器详解、使用示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Filter過濾器講解

定義

過濾器處于瀏覽器與servlet之間,是一個實現了 javax.servlet.Filter 接口的 Java 類
客戶端發送的請求、服務器發送的資源,需要通過過濾器,才可以繼續流轉

作用
  • 對服務器接收的請求資源和相應給瀏覽器的資源進行管理。
  • 保護servlet
使用
  • 創建一個實現了Filter接口的普通Java類(Eclipse中可以直接創建Filter)
  • 覆寫接口方法
    • init方法
    • doFilter方法
    • destroy方法
  • 在web.xml中配置過濾器(如下)
<filter><display-name>MyFilter</display-name><filter-name>MyFilter</filter-name><filter-class>cn.hanquan.filter.MyFilter</filter-class></filter><filter-mapping><filter-name>MyFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
XML配置內容含義

<url-pattern>/</url-pattern>表示攔截所有請求
<url-pattern>.do</url-pattern>表示攔截所有以.do結尾的請求。一般是用來進行模塊攔截處理。
<url-pattern>/LoginServlet</url-pattern>表示攔截指定url的請求。針對某個servlet的請求進行攔截,保護servlet。

過濾器的生命周期

從服務器啟動,到服務器關閉。

總結

過濾器由程序員聲明和配置。

服務器收到請求后,根據URI信息在web.xml中找到對應的過濾器執行doFilter方法。該方法對此請求進行處理后,如果符合要求,則放行,放行后,如果還有符合要求的過濾器則繼續進行過濾,找到執行對應的servlet進行請求處理。

servlet對請求處理完畢后,也就service方法結束了。還需要返回相應的doFilter方法繼續執行。

使用場景

統一設置編碼格式
session管理
權限管理
資源管理(統一水印、和諧詞匯等等)


使用示例

package cn.hanquan.filter;import java.io.IOException;import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;/*** 過濾器的使用*/ public class MyFilter implements Filter {@Overridepublic void destroy() {System.out.println("過濾器被銷毀");}@Overridepublic void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)throws IOException, ServletException {System.out.println("過濾器被執行");// 設置編碼格式req.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");// 放行chain.doFilter(req, resp);}@Overridepublic void init(FilterConfig arg0) throws ServletException {System.out.println("過濾器被初始化");} }

總結

以上是生活随笔為你收集整理的【Servlet】Filter过滤器详解、使用示例的全部內容,希望文章能夠幫你解決所遇到的問題。

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