1. 程式人生 > >servlet和過濾器的區別是什麼

servlet和過濾器的區別是什麼

一、概念:
1、servlet:servlet是一種執行伺服器端的java應用程式,具有獨立於平臺和協議的特性,並且可以動態的生成web頁面,它工作在客戶端請求與伺服器響應的中間層。
2、filter:filter是一個可以複用的程式碼片段,可以用來轉換HTTP請求、響應和頭資訊。Filter不像Servlet,它不能產生一個請求或者響應,它只是修改對某一資源的請求,或者修改從某一的響應。
二、生命週期:
1、servlet:servlet的生命週期始於它被裝入web伺服器的記憶體時,並在web伺服器終止或重新裝入servlet時結束。servlet一旦被裝入web伺服器,一般不會從web伺服器記憶體中刪除,直至web伺服器關閉或重新結束。
(1)、裝入:啟動伺服器時載入Servlet的例項;
(2)、初始化:web伺服器啟動時或web伺服器接收到請求時,或者兩者之間的某個時刻啟動。初始化工作有init()方法負責執行完成;
(3)、呼叫:從第一次到以後的多次訪問,都是隻呼叫doGet()或doPost()方法;
(4)、銷燬:停止伺服器時呼叫destroy()方法,銷燬例項。 
2、filter:(一定要實現javax.servlet包的Filter介面的三個方法init()、doFilter()、destroy(),空實現也行)
(1)、啟動伺服器時載入過濾器的例項,並呼叫init()方法來初始化例項;
(2)、每一次請求時都只調用方法doFilter()進行處理;
(3)、停止伺服器時呼叫destroy()方法,銷燬例項。
三、職責
1、servlet:
建立並返回一個包含基於客戶請求性質的動態內容的完整的html頁面;
建立可嵌入到現有的html頁面中的一部分html頁面(html片段);
讀取客戶端發來的隱藏資料;
讀取客戶端發來的顯示資料;
與其他伺服器資源(包括資料庫和java的應用程式)進行通訊;
通過狀態程式碼和響應頭向客戶端傳送隱藏資料。
2、filter:
filter能夠在一個請求到達servlet之前預處理使用者請求,也可以在離開servlet時處理http響應:
在執行servlet之前,首先執行filter程式,併為之做一些預處理工作;
根據程式需要修改請求和響應;
在servlet被呼叫之後截獲servlet的執行
四、區別:
1,servlet 流程是短的,url傳來之後,就對其進行處理,之後返回或轉向到某一自己指定的頁面。它主要用來在 業務處理之前進行控制.
2,filter 流程是線性的, url傳來之後,檢查之後,可保持原來的流程繼續向下執行,被下一個filter, servlet接收等,而servlet 處理之後,不會繼續向下傳遞。filter功能可用來保持流程繼續按照原來的方式進行下去,或者主導流程,而servlet的功能主要用來主導流程。
filter可用來進行字元編碼的過濾,檢測使用者是否登陸的過濾,禁止頁面快取等。

相關推薦

攔截器過濾器區別

his view uri servlet容器 des owa acc long nlog 比如動態代理就是攔截器的簡單實現, public Object invoke(Object proxy, Method method, Object[] args) throws Th

servlet socket區別

通常我們會說"socket連線",也就是說socket是指明兩個地址的連線通訊方式.和socket關聯的東西大多是伺服器,客戶端,TCP,UDP,位元組流之類的. socket 需要自己建立連線,分析構造輸入輸出電文。 而servlet我們會說使用"servlet技術"或"

攔截器過濾器區別,Struts2與SpringMVC的區別

攔截器和過濾器 1.攔截器是基於java反射機制的,而過濾器是基於函式回撥的; 2.攔截器不依賴於servlet容器,而過濾器依賴於servlet容器; 3.攔截器只能對Action請求起作用,而過濾器則可以對幾乎所有請求起作用; 4.攔截器可以訪問Action上下文、值棧裡的物件,而過

servlet過濾器的區別是什麼

一、概念: 1、servlet:servlet是一種執行伺服器端的java應用程式,具有獨立於平臺和協議的特性,並且可以動態的生成web頁面,它工作在客戶端請求與伺服器響應的中間層。 2、filter:filter是一個可以複用的程式碼片段,可以用來轉換HTTP請求、響應和頭

攔截器過濾器區別總結

因為過濾器Filter是servlet相關的由serviette容器tomcat管理,而攔截器Interceptor是spring管理,因為web程式執行過程就是先啟動tomcat容器,之後再在容器中呼叫spring那些東西,所以首先我猜測順序是先走Filter過濾器 後進

Filter、ServletListener區別與聯絡

1. Servlet 可以用來建立並返回一個包含基於客戶請求性質的動態內容的完整的html頁面;可以建立可嵌入到現有的html頁面中的一部分html頁面(html片段);可以讀取客戶端發來的隱藏資料;可以 讀取客戶端發來的顯示資料;可以與其他伺服器資源(包括資料庫和jav

攔截器過濾器區別

str span line 實現 沒有 內部 不依賴 resp left 攔截器和過濾器都可以用來實現橫切關註功能,其區別主要在於: 1、攔截器是基於java反射機制的,而過濾器是基於函數回調的。 2、過濾器依賴於servlet容器,而攔截器不依賴於servlet容器。 3

SpringMVC的攔截器(Interceptor)過濾器(Filter)的區別與聯系

get err 實例 分享 切面 簡介 () lee XML 一 簡介 (1)過濾器: 依賴於servlet容器。在實現上基於函數回調,可以對幾乎所有請求進行過濾,但是缺點是一個過濾器實例只能在容器初始化時調用一次。使用過濾器的目的是用來做一些過濾操作,獲取我們想要獲取

Servlet過濾器、監聽器對象的實例化銷毀的優先級

servlet優先級實例化時:監聽器-->過濾器-->Servlet銷毀時:過濾器-->Servlet-->監聽器Servlet實例化的順序:若設置了loadOnStartUp屬性值≥0,則在Wed容器開啟的時候就實例化,否則訪問時實例化;如果Servlet是在Web.xml文件中配置

Struts2攔截器過濾器區別

tex ext struts 依賴 上下 生命周期 action 上下文 區別 ①過濾器依賴於Servlet容器,而攔截器不依賴於Servlet容器。 ②Struts2 攔截器只能對Action請求起作用,而過濾器則可以對幾乎所 有請求起作用。 ③攔截器可以訪問 Actio

servlet filter的區別

com 檢查 功能 邏輯判斷 一個 編碼 客戶 cnblogs 應用 filter與servlet區別 filter: 1.線性流程:url傳來之後,檢查之後,可保持原來的流程繼續向下執行,被下一個filter, servlet接收; 2

javax.servlet-api-xx.jarservlet-api.jar區別

tom 查詢 識別 兩個 servle src com 版本 .com 一、簡介支持servlet的jar包。應該叫servlet-api.jar如果編寫過servlet就知道要用到HttpServletRequest和HttpServletResponse等對象,這些對象

Servlet過濾器(Filter)監聽器(Listener)

卸載 ons str alt 用戶 監聽 實際應用 .com except 過濾器 過濾器是一個java組件,可以攔截發送至某個servelet,jsp頁面或靜態頁面的請求,可以在響應發送到客戶之前進行攔截 工作原理: 過濾器類必須實現 Filter 接口,包含的方法如下

applicationContext-XXX.xmlXXX-servlet.xml的區別

IT xxx bottom pat 官網 轉發 ota sca AC 1.ApplicationContext.xml 是spring 全局配置文件,用來控制spring 特性的 2.dispatcher-servlet.xml 是spring mvc裏面的,控制器、攔

Servlet初始配置 監聽器過濾器

https cal 認證 缺省 Coding wrapper oot comm 是否 ServletContext:application範圍內的參數 此所設定的參 來源: http://note.sdo.com/my 數,在JSP網頁中可以使用下列方法來取得:

ServletJSP中的過濾器都是Java類

javax res remote 後端 tro response 服務 value 客戶端 JSP 過濾器 Servlet和JSP中的過濾器都是Java類,它們存在的目的如下: 在請求訪問後端資源時攔截它 管理從服務器返回給客戶端的響應 下面列出了多種常用的過濾器類型:

javaWeb開發之攔截器過濾器區別

攔截器和過濾的關係圖   攔截器和過濾器簡要區別 1、攔截器是基於java的反射機制的,而過濾器是基於函式回撥。2、攔截器不依賴與servlet容器,過濾器依賴與servlet容器。3、攔截器只能對action請求起作用,而過濾器則可以對幾乎所有的請求起作用。4、攔截器可以訪問action

攔截器(Interceptor)過濾器(Filter)的執行順序區別

一、引言 本來想記錄一下關於使用者登陸和登陸之後的許可權管理、選單管理的問題,想到解決這個問題用到Interceptor,但想到了Interceptor,就想到了Filter,於是就想說一下它們的執行順序和區別。關於Interceptor解決許可權和選單管理的問題,在放

Servlet中的forwardredirect區別

背景:在設計Web應用時,需要把一個系統進行結構化設計,即按照模組化進行劃分,讓不同的Servlet實現不同的功能,例如讓其中一個Servlet負責接收使用者的請求,另一個Servlet負責處理使用者的請求。為了實現這種程式的模組化,就需要保證在不同的Servlet之間可以相

轉發重定向的區別過濾器攔截器的區別

spring width 客戶 截器 數據 http image 定向 框架 重定向:客戶端發起兩次請求 不會攜帶數據 轉發:服務端內部跳轉,從客戶端只發起一次請求 SpringMvc默認的跳轉方式是:轉發 SpringMvc中的攔截器:過濾進入SpringMVC