HttpServletRequest中的方法是哪個類實現的?

菠菜飯糰發表於2020-11-18

今天閒來無聊敲程式碼,忽然有點好奇HttpServletRequest這個介面中的方法到底是怎麼實現的?

在這裡插入圖片描述
於是我跑了個servletDemo,在控制檯將request列印了一下:
在這裡插入圖片描述
控制檯輸出:
在這裡插入圖片描述

request: org.apache.catalina.connector.RequestFacade@6c77d00e

RequestFacade???這是個什麼物件啊?

從網上下載tomcat的原始碼檢視一番:

在這裡插入圖片描述
發現RequestFacade類實現了HttpServletRequest類,覆寫了其中的方法

在這裡插入圖片描述
度娘了一下,說Tomcat使用Facde模式對Request物件進行了包裝,是為了遮蔽內部的catalina容器的相關方法,使使用者免受非sevlet標準方法的干擾。

不是很懂,隨手記錄下,希望知道的小夥伴不吝賜教,謝謝

相關文章