2013-02-19 15 views
1

我對servlets並不陌生。但我仍然好奇:爲什麼javax.servlet包不是自行發佈的?爲什麼我需要安裝一些應用程序服務器才能編譯我的代碼?爲什麼javax.servlet包僅作爲應用程序服務器的一部分進行分發?

+0

因爲它的目的是爲Java Web應用程序服務器上的Web應用程序運行,而不是外界。不過,您可以在Java EE 6 JDK(即GlassFish v3實現)中包含此包。 – 2013-02-19 21:05:08

+0

@GlebR - Application Server實現JEE規範和javax.Servlet只能運行在這些種類的服務器上 – user1428716 2013-02-19 21:09:52

+1

它是自己分發的。你的問題是基於錯誤的前提。 – EJP 2013-02-19 22:58:32

回答

5

簡短的回答,它是單獨發行。

Servlet是在說明書和一個API。如果您需要JAR,請從規格站點Servlet Spec 3.0下載。

顯然,如果你想實際部署應用程序,您仍然需要實現(即服務器)。

2

該Servlet API是可以通過一些罐子,你可以用它做你想要什麼。在maven上它是here。你可以在沒有任何應用程序服務器的情況下編譯代碼,但它可能不會做你想要的。它只是一個接口畢竟

Servlet是隻有在Web應用程序的情況下真正相關的,這就是爲什麼Servlet容器存在。他們是實施。查看容器在請求到達servlet之前所做的所有工作:Tomcat Sequence Diagram

0

的Servlet像其他的Java EE技術,如EJB從Java Community Process Program

JSR(Java規範要求)規格的責任是應用服務器供應商提供基於規格released.In這種情況下 實施 - 爲Servlet 2.5 - 爲Servlet 3.0

太陽/現在是Oracle確實分別釋放javax.servlet包,你可以從Maven Repository還其可用任何J2EE投訴AP的lib文件夾中下載摺疊服務器/ web容器。 即在Tomcat其TOMCAT_HOMEDIR/lib目錄/ servlet的API提供

所以對於developing and compiling , this jar is sufficient,你只會need the Application server only when you want to actually deploy your application

相關問題