Filter与Servlet的区别和联系
?
?
| ? | Filter | Servlet |
| 接口 | 實(shí)現(xiàn)Filter接口 | 實(shí)現(xiàn)Servlet接口 |
| 使用步驟 | 1、創(chuàng)建類,繼承接口 2、實(shí)現(xiàn)方法 init() doFilter() destroy() ? 3、配置WEB-INF/web.xml | 1、創(chuàng)建類,繼承接口 2、實(shí)現(xiàn)方法 init() service() destroy() getServletConfig() getServletInfo() 3、配置WEB-INF/web.xml |
| 初始化時(shí)間 | Servlet容器啟動(dòng)之后即初始化 | Servlet類被調(diào)用之后初始化、先于Filter調(diào)用。 初始化可以在容器啟動(dòng)后被調(diào)用但需要配置。 |
| 調(diào)用順序 | 1. 按照web.xml中的映射配置順序按照配置條件從后向前調(diào)用 2. 層次調(diào)用doFilter()方法中FilterChain.doFilter()之前的內(nèi)容 3. 調(diào)用Servlet中的service()方法 4. service方法執(zhí)行完畢后,層次調(diào)用doFilter()中FilterChain.doFilter()之后的方法,順序與之前的相反 ? | 按照web.xml中的映射配置順序按照配置條件從后向前調(diào)用第一個(gè)滿足條件的Servlet,調(diào)用之前事先執(zhí)行滿足條件的Filter,不存在層次調(diào)用Servlet問(wèn)題 |
| 銷毀 | 服務(wù)器停止后銷毀,晚于Servlet銷毀之后 | 服務(wù)器停止后銷毀 |
| 作用 | 1. 在HttpServletRequest到達(dá)Servlet之前,攔截客戶的HttpServletRequest。 2. 根據(jù)需要檢查HttpServletRequest,也可以修改HttpServletRequest頭和數(shù)據(jù)。 3. 在HttpServletResponse到達(dá)客戶端之前,攔截HttpServletResponse。 4. 根據(jù)需要檢查HttpServletResponse,也可以修改HttpServletResponse頭和數(shù)據(jù)。 | 主要是處理客戶端的請(qǐng)求并將其結(jié)果發(fā)送到客戶端。 |
?
轉(zhuǎn)載于:https://www.cnblogs.com/zs234/archive/2013/04/21/3233359.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的Filter与Servlet的区别和联系的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LeetCode刷题第二天——3Long
- 下一篇: 回溯---分割字符串使得每个部分都是回文