java servlet拾遗(1)-Servlet总揽
2019獨角獸企業重金招聘Python工程師標準>>>
一、總的來看:java servlet API 類框圖
(1)、Servlet Api的核心是javax.servlet.Servlet接口,包括5個方法,3個方法由Servlet容器來調用
- public void init(ServletConfig config) throws ServletException; ?初始化資源,容器啟動的時候
- public void service(ServletRequest req, ServletResponse res)?
?throws ServletException, IOException; ? 負責請求,并進行業務處理,并返回響應
- public void destroy(); 負責釋放Servlet對象占用的資源。當Servlet結束對象時,調用該方法。
另外兩個是返回Servlet的相關信息的方法
- public ServletConfig getServletConfig(); ?返回一個ServletConfig?對象,包含了Servlet初始化參數信息
- public String getServletInfo(); 返回一些簡要的Servlet文本信息
?
(2)、GenericServlet 抽象類實現了Servlet接口的通用方法,屏蔽了網絡應用層協議,還實現了ServletConfig ?和Serializable接口。個人覺得意義不大,并沒有什么卵用。
?
(3)、javax.servlet.http.HttpServlet類 ,顧名思義,是基于http協議通用實現
- 好像暫且也只有這么一個協議層,并沒有什么TcpServlet,UdpServlet等等之類的Servlet,當然了,Servlet的創建者高瞻遠慮,還是值得崇拜的
- 在自定義的Http協議的,基于javaWeb開發的應用中,都繼承HttpServlet類。
- http協議把客戶請求get,post,put,delete等多種方式,而HttpServlet則通過重載protected void service(HttpServletRequest req, HttpServletResponse resp)??throws ServletException, IOException把每一種請求方式都提供了相應的服務方法,我們只要繼承該方法,即可提供相應的http協議方法給客戶端。如圖領略一些:
(4)、javax.servlet.ServletRequest接口,表示客戶端的請求,當Servlet容器接收客戶的請求時,Servlet容器把客戶端的請求都解析并封裝到ServletRequest對象,供Servlet對象調用service()方法時使用
?
(5)、javax.servlet.http.HttpServletRequest 顧名思義,就是基于http協議的客戶端的請求信息,主要包括http協議里的
- 請求header信息,包括編碼,長度,響應類型等等
- 請求的body信息
- 請求cookie信息
- 請求的方法
- 而繼承于ServletRequest的public ServletInputStream getInputStream() throws IOException; ,則是其他方法的數據源頭
(6)、javax.servlet.ServletResponse 接口,表示響應給客戶端的結果,主要是調用
- public ServletOutputStream getOutputStream() throws IOException; ?通過該方法,輸出給客戶端響應的二進制信息
- public PrintWriter getWriter() throws IOException; 直接輸出文本類信息
- public void flushBuffer() throws IOException;最后都要調用該方法,把緩沖區內的數據全部輸出到客戶端
?
(7)、javax.servlet.http.HttpServletResponse 基于http協議的響應接口,對應HttpServletRequest ?,包括返回給客戶端的header,body,cookie,當然還有基于cookie的回話。
?
(8)、javax.servlet.ServletConfig 接口 主要是作為配置參數用,也可以自定義配置文件代替
?
(9)、javax.servlet.ServletContext 接口?
- Servlet啟動時創建,且盡創建一個ServletContext對象
- web應用的總管家
- 用于在Web應用范圍內 存取共享數據的方法
- 訪問當前Web應用的資源
- 訪問Servlet容器中的其他web應用
- 訪問服務器端的文件系統資源
- 日志輸出
?
?
?
?
?
?
轉載于:https://my.oschina.net/haoran100/blog/712496
總結
以上是生活随笔為你收集整理的java servlet拾遗(1)-Servlet总揽的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Array]Pascal's Tria
- 下一篇: 由String.equals()方法引起