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