我对 servlet 并不陌生。但我仍然很好奇:为什么javax.servlet
包不是自己分发的?为什么在编译代码之前需要安装一些应用程序服务器?
3 回答
简短的回答,它是单独分发的。
Servlet 是一个规范和一个 API。如果您需要 JAR,请从规范站点Servlet Spec 3.0下载它。
显然,如果您想实际部署您的应用程序,您仍然需要一个实现(即服务器)。
servlet API 可通过一些 jar 获得,您可以随心所欲地使用它。在 Maven 上它就在这里。您可以在没有任何应用程序服务器的情况下编译代码,但它可能无法满足您的要求。毕竟只是一个界面
Servlet 仅在 Web 应用程序的上下文中真正相关,这就是存在 Servlet 容器的原因。他们是执行。看看容器在请求到达 servlet 之前所做的所有工作:Tomcat 序列图。
Servlet 与 EJB 等其他 Java EE 技术一样,是来自Java Community Process Program的JSR(Java 规范请求)规范
应用服务器供应商有责任根据发布的规范提供实施。在这种情况下 - 对于Servlet 2.5 - 对于Servlet 3.0
Sun / now Oracle 确实javax.servlet
单独发布了该软件包,您可以从Maven Repository下载它,它也可以在任何 J2ee 投诉应用程序服务器/Web 容器的 lib 文件夹中找到。即对于 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
。