Servlet是一種伺服器端腳本,它是一個特殊的Java類,繼承自HttpServlet,開發中主要用于處理和響應用戶端的請求。
Servlet在容器中運作,其執行個體的和銷毀建立由容器進行控制。每個Servlet的運作都遵循如下生命周期:
(1)(容器)建立Servlet執行個體。
(2)init(初始化,顯示相關Servlet執行個體資訊,如log)。
(3)Service(處理和響應請求,如接受表單請求參數并進行請求轉發)。
(4)destroy(銷毀,釋放資源)。
将Servlet(即java類)編譯成class檔案,容器加載class檔案,為了能讓Servlet能處理使用者請求,必須要将Servlet配置在web應用中,在web.xml中進行配置。配置Servlet需要配置兩個部分:
(1).配置Servlet的名字。
(2).配置Servlet的URL映射。
Filter
Filter并不是一個标準的Servlet,它不能處理使用者請求,也不能對用戶端生成響應。主要用于HttpServletRequest進行預處理,也可以對HttpServletResponse進行後處理,是個典型的處理鍊。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0NXYFhGd192UvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1TPn10dNRUTsxWbh5WNyI2bk1mYohWblZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DNxkTO0MTN2EDNyATM0EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
Servlet通常隻配置一個url,而Filter可以同時攔截多個請求的url。建立Filter必須實作javax.servlet.Filter接口,該接口定義了三個方法:
(1)voidinit(FilterConfig config)
(2)voiddestroy()
(3)void doFilter(HttpServletRequest request, HttpServletResponseresponse, FilterChain chain),實作過濾,就是對使用者請求和響應增加額外處理。在過濾器開始運作之後,wen容器每接收到與該過濾器URL模式相比對的URL時,就會調用這個方法。
Servlet運作于支援Java的應用伺服器中。從實作上講,Servlet可以響應任何類型的請求,但絕大多數情況下Servlet隻用來擴充基于HTTP協定的Web伺服器。最早支援Servlet标準的是JavaSoft的Java Web Server。此後,一些其它的基于Java的Web伺服器開始支援标準的Servlet。