更新時間:2022-04-08 10:12:54 來源:動力節點 瀏覽993次
Filter是什么?動力節點小編來給大家進行詳細介紹。
filter過濾器的作用:攔截請求
網頁上的某些操作或數據只有用戶登錄之后才能訪問,用filter來過濾掉未登錄的用戶,只讓已經登錄的用戶繼續訪問
利于數據的管理
public class ManagerFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
Object user = httpServletRequest.getSession().getAttribute("user");
if (user == null) {
httpServletRequest.getRequestDispatcher("/pages/user/login.jsp").forward(servletRequest,servletResponse);
} else {
filterChain.doFilter(servletRequest,servletResponse);
}
}
@Override
public void destroy() {
}
}
再多個filter中,按照web.xml中filter的配置順序執行filter類
<!--filter 標簽用于配置一個 Filter 過濾器-->
<filter>
<!--給 filter 起一個別名-->
<filter-name>AdminFilter</filter-name>
<!--配置 filter 的全類名-->
<filter-class>com.atguigu.filter.AdminFilter</filter-class>
</filter><!--filter-mapping 配置 Filter 過濾器的攔截路徑-->
<filter-mapping>
<!--filter-name 表示當前的攔截路徑給哪個 filter 使用-->
<filter-name>AdminFilter</filter-name>
<url-pattern>/admin/ *</url-pattern>//給admin下所有頁面都加上一個過濾器
</filter-mapping>
Filter 的生命周期包含幾個方法
(1)構造器方法
(2)init 初始化方法
第 1, 2 步, 在 web 工程啟動的時候執行(Filter 已經創建)
(3)doFilter 過濾方法
第 3 步, 每次攔截到請求, 就會執行
(4)destroy 銷毀
第 4 步, 停止 web 工程的時候, 就會執行(停止 web 工程, 也會銷毀 Filter 過濾器)
多個鏈在同一線程中,都可獲取request中的參數
–精確匹配
/target.jsp
以上配置的路徑, 表示請求地址必須為: http://ip:port/工程路徑/target.jsp
–目錄匹配
/admin/
以上配置的路徑, 表示請求地址必須為: http://ip:port/工程路徑/admin/
–后綴名匹配
.html
以上配置的路徑, 表示請求地址必須以.html 結尾才會攔截到
.do
以上配置的路徑, 表示請求地址必須以.do 結尾才會攔截到
*.action
以上配置的路徑, 表示請求地址必須以.action 結尾才會攔截到
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習