1. 程式人生 > >Web學習日記_13:HttpServlet

Web學習日記_13:HttpServlet

1,HttpServlet概述

HttpServlet類是GenericServlet的子類,它提供了對HTTP請求的特殊支援,所以通
常我們都會通過繼承HttpServlet來完成自定義的Servlet。

2 ,HttpServlet覆蓋了service()方法

HttpServlet類中提供了service(HttpServletRequest,HttpServletResponse)方法,這個
方法是HttpServlet自己方法,不是從Servlet繼承來的。在HttpServlet的service(ServletRequest,
ServletResponse)方法中會把ServletRequest和ServletResponse強轉成HttpServletRequest和
HttpServletResponse,然後呼叫service(HttpServletRequest,HttpServletResponse)方法,這說
明子類可以去覆蓋service(HttpServletRequest,HttpServletResponse)方法即可,這就不用自己去
強轉請求和響應物件了。其實子類也不用去覆蓋service(HttpServletRequest,HttpServletResponse)方
法,因為HttpServlet還要做另一步簡化操作,下面會介紹。
HttpServlet.java

public abstract class HttpServlet extends GenericServlet {
    protected void service(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
        ……
}
    @Override
    public void service(ServletRequest req, ServletResponse res)
        throws ServletException, IOException {

        HttpServletRequest  request;
        HttpServletResponse response;

        try {
            request = (HttpServletRequest) req;
            response = (HttpServletResponse) res;
         } catch (ClassCastException e) {
            throw new ServletException("non-HTTP request or response");
        }
        service(request, response); 
}

}

3,doGet()和doPost()
在HttpServlet的service(HttpServletRequest,HttpServletResponse)方法會去判斷當前請求是GET還是POST,
如果是GET請求,那麼會去呼叫本類的doGet()方法,如果是POST請求會去呼叫doPost()方法,這說明我們
在子類中去覆蓋doGet()或doPost()方法即可。

public class AServlet extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		System.out.println("hello doGet()...");
	}
}
public class BServlet extends HttpServlet {
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		System.out.println("hello doPost()...");
	}
}

相關推薦

Web學習日記_13HttpServlet

1,HttpServlet概述 HttpServlet類是GenericServlet的子類,它提供了對HTTP請求的特殊支援,所以通 常我們都會通過繼承HttpServlet來完成自定義的Servl

Web學習日記_15響應對應例題

建立如下web專案: 建立包名如上圖: 建立servlet檔案:new>servlet 最下面只勾勒doGet方法 刪除掉藍色區域內容 點完成 在建立另一個檔案,用來接收響應。 Bservlet。建立方式如上。 在Aservlet內寫入程式

Web學習日記_15respond響應

1,伺服器處理請求的流程:   伺服器每次收到請求時,都會為這個請求開闢一個新的執行緒。   伺服器會把客戶端的請求資料封裝到request物件中,request就是請求資料的載體!   伺服器還會建立response物件,這個物件與客戶端連線

Web學習日記_8實現Servlet的方法

1,實現Servlet有三種方法     *:實現javax.servlet.Servlet介面     *:繼承javax.servlet.GenericServlet類     *:繼承javax.se

Web學習日記_07servlet的學習之servlet的概述以及方法

Servlet的概述 servlet是JavaWeb三大元件之一,屬於動態資源。其作用的處理請求,伺服器會把接收到的請求交給servlet來處理。 通常需要: 接受請求資料 處理請求 完成迴應 sevelet需要tomcat呼叫,但是需要自己編寫servlet,每個

Web學習日記_06XML約束之DTD約束

1,為什麼需要XML約束; 比如我們定義一個人的XML檔案,裡面包括人的元素姓名、年齡、性別等,但是如果你 寫入貓這個元素的時候,執行XML可以正常顯示。但是貓不是屬於人所屬的元素,不符合 人的現實關。所以這時候就需要XML約束來約束文件人的元素。 2,XML約束技術:DTD約束和sc

Web學習日記_05XML語法

1,XML語言:可擴充套件標記型語言。         在之前標記型語言學過HTML語言,HTML語言裡面的標籤是固定的, 每個標籤都有特定的含義;而XML裡面的標籤的可以自定義標籤, 也可以學中文標籤; XML是W3C組織釋出的技術;XML有兩

.net core 學習日記添加swagger支持

star .json .net core 學習 web end direct dds ash swagger 是restful api 文檔生成工具,當加入swagger後,發布api自動生成swagger 頁,記錄對應接口信息,並可在頁面直接測試調取接口。 這篇文章記錄

web學習日記_15:響應對應例題——定時重定向

前言:你是不是一個某網盤高手,你在某網盤是不是收藏了大量資源種子,你是不是一個會開車的網盤老司機?沒錯,這次的例題和網盤沒有啥關係。 其實,還是有關係的,如果你使用過百度網盤。那一定會繫結QQ來作為登入從而來解決登入代帶來的麻煩。在你使用QQ登入後,頁面會顯示還有幾秒中跳轉到百度網盤(網頁版

Web學習日記_14:ServletContext

1,ServletContext概述 伺服器會為每個應用建立一個ServletContext物件: ServletContext物件的建立是在伺服器啟動時完成的; ServletContext物件的銷燬是在伺服器關閉時完成的。 ServletContext物件的作用是在整

Web學習日記_09:建立Servlet應用

使用myeclipse建立一個Web專案1,new>Web Project :點finish完成建立(我的專案名稱為WebProjest) 在scr內建立一個包,在包內建立一個java檔案並寫入: HelloServlet.java內程式碼:   public cla

Web學習日記_10:Servlet介面

在上面的文章中我們是通過實現Servlet介面來實現servlet中的方法的。 那我們就來了解Servlet介面吧。 1,Servlet的生命週期   void init(ServletConfig);  void service(ServletReque

Java Web 學習筆記之一伺服器獲取表單上傳的檔案

Servlet3.0標準之後,Java Web檔案上傳就不需要通過FileUpload等庫來實現了,通過servlet API即可實現web後臺的檔案上傳支援。 表單提交請求,表單中的檔案可以通過request.getPart()方法獲取。 下面來介紹獲取檔案的具體使用方

Java web學習總結10HttpServletRequest物件1

一、HttpServletRequest介紹   HttpServletRequest物件代表客戶端的請求,當客戶端通過HTTP協議訪問伺服器時,HTTP請求頭中的所有資訊都封裝在這個物件中,通過這個物件提供的方法,可以獲得客戶端請求的所有資訊。 二、Request常用方法

Laravel學習日記1安裝與初識

前話: 一直使用ThinkPHP框架,最近計劃由tp3升級到tp5,結果發現tp5相關的文件都是收費的,準備棄之,換用Laravel。 工作的環境都是Linux,因此只討論Linux下的操作,不涉及windows相關。 相對於TP而

java學習日記_9面向物件的概念以及思想

 java是面向物件的程式語言, 面向物件是基於面向過程的程式設計思想; 先區別一下面向過程與面向物件—— 面向過程:強調每一步的功能步驟, 面向過程:強調的是物件,然後由物件去呼叫功能; 面向物件的特點——符合常規思維;將複雜簡單化;將執行者變為指揮者; 舉個很直觀的例

python學習日記day11-----裝飾器

spa bsp 就是 時間 裝飾 原則 老板 args 函數名 1,time模塊 import time print(time.sleep())#讓程序在執行到這個位置到時候停一會 print(‘哈哈哈‘) 獲取當前時間 import time time.tim

python學習日記day13------叠代器與生成器

就是 元素 獲取值 空間 for stat name 監聽 dir 一、導入 1,dir功能 print(dir([]))告訴我這個列表擁有的所有方法 帶著雙下劃線的方法叫做雙下方法。 2,一個列表執行了_iter_()之後的返回值就是一個叠代器 3,_length_h

python學習日記day15:------內置函數

八進制 一個 end bin cal sum 除法 open() 空間 1,作用域相關 1)locals()---------獲取執行本方法所在命名空間內的局部變量的字典 #返回本地作用域中的所有名字 2)globals()——獲取全局變量的字典 #返回全局作用域中的所有名

學習日記 | 5.29 [Python3] Python Web開發基礎

odi 編碼 AC htm extends app render www amp 註:這是一系列基於實驗樓網絡培訓的python學習日記,內容零散,只是便於我自己回顧,有需要請了解www.shiyanlou.com。 3. 實驗13: jinja2模板 flask