我已經這樣做了一段時間了,但現在我開始思考了。爲什麼沒有javax.servlet.http.HttpServletRequest的規範定義?
HttpServletRequest是Java標準中定義的接口。爲什麼我們總是需要的是一個具體的,第三方的定義,甚至編譯,就像以下(使用Apache):
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
這是否意味着寫這是使用的javax純粹的標準,廠商無關的代碼。 servlet是不可能的?
P.S.我知道我可以得到Glassfish而不是Apache。但這意味着我將使用另一個具體的實現,而不是編碼到一個通用接口。
P.P.S.讓我進一步澄清我的問題。 HttpServletRequest接口(我不是在談論實現)在Apache和Glassfish庫中都有定義。一個被許可給Apache軟件基金會,另一個受Oracle的版權保護。有沒有規範的HttpServletRequest接口這樣的事情?
P.P.P.S.看起來像現在我可以進一步完善我的問題。如果一個標準定義的接口非常緊密,以至於多個供應商之間沒有可能的差異 - 爲什麼不把它作爲標準庫的一部分呢?爲什麼要允許多個真相來源?
你的依賴例子有**沒有**與Apache。 – Kayaman
定義_Java standard_。 –
我懷疑這個混淆來自於3.0.1 jar(至少我能找到的那個jar)包含Apache實現。但是,如果您看一下例如3.0-alpha-1 jar,那麼它就是javax包(即標準API) –