山寨Tomcat之旅——解析請求body

來源:互聯網
上載者:User

解析請求body是指,web伺服器根據ContentType首部,解析請求body,以方便應用程式擷取請求body中的資料。

一、為何要解析

解析的目的是方便應用程式。

舉個例子,在編寫servlet時,我們通過getParameter方法可以很方便地獲得請求參數。但是,假設伺服器沒有解析請求body,且要求方法為post,那麼應用程式只有先解析請求body才能獲得請求參數。

二、解析哪些ContentType?

作為servlet協議的實現者,我們無法選擇哪些ContentType要解析,哪些不要解析。因為,每解析一種ContentType,HttpServletRequest對象就要提供相應的方法去獲得解析結果,而HttpServletRequest對象有哪些方法是由servlet協議規定的。要實現協議規定的方法,你就必須實現相應ContentType的解析。協議沒有規定的方法,即時你解析了相應的ContentType,應用程式也無法獲得解析結果。

舉個例子,在servlet 2.5的時候,HttpServletRequest沒有提供直接擷取上傳檔案的方法,那麼即時伺服器實現了對multipart/form-data這種ContentType的解析,使用者也不無法直接擷取上傳檔案。但是到了servlet 3.0,HttpServletRequest提供了getPart方法直接擷取上傳檔案,於是所有實現servlet 3.0的伺服器就必須要完成對multipart/form-data這種ContentType的解析。

三、總結

所以要實現請求body的解析,我們需要完成兩個任務:

(1.)根據servlet協議,確定需要解析的ContentType。

(2.)根據mime協議,確定每種ContentType的資料格式。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.