【Servlet】Filter过滤器详解、使用示例
生活随笔
收集整理的這篇文章主要介紹了
【Servlet】Filter过滤器详解、使用示例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Filter過濾器講解
定義
過濾器處于瀏覽器與servlet之間,是一個實現了 javax.servlet.Filter 接口的 Java 類
客戶端發送的請求、服務器發送的資源,需要通過過濾器,才可以繼續流轉
作用
- 對服務器接收的請求資源和相應給瀏覽器的資源進行管理。
- 保護servlet
使用
- 創建一個實現了Filter接口的普通Java類(Eclipse中可以直接創建Filter)
- 覆寫接口方法
- init方法
- doFilter方法
- destroy方法
- 在web.xml中配置過濾器(如下)
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过滤器详解、使用示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Java】不需要正则表达式,提取字符串
- 下一篇: 【Servlet】总结 JSP的四大域对