Cur*_*ind 16 java servlets java-ee tomcat7
我需要了解编译servlet所需的serlvet-api.jar.
我正在构建一个简单的servlet,如下所示:
import javax.servlet.*;
import javax.servlet.http.*;
public class FirstServlet extends HttpServlet {
// Remaining code here
}
Run Code Online (Sandbox Code Playgroud)
我知道我们需要servlet-api.jar文件来编译这个简单的servlet,如下所示:
javac -classpath /path/where/jar/is/servlet-api.jar
Run Code Online (Sandbox Code Playgroud)
现在我的怀疑从这里开始:
考虑这种情况:
假设我们使用Tomcat编译/构建简单的servlet(即构建servlet所需的tomcat版本的jar)并创建.war文件.我们可以在其他供应商的容器中部署战争吗?
icz*_*cza 14
它是什么?
servlet-api jar是一个包含Servlet API规范的接口和类的库.servlet-api jar只包含Servlet规范的接口(API),因此您可以使用它来开发Web应用程序.
你在哪里可以得到它?
它在以下链接中提供:
http://download.oracle.com/otndocs/jcp/servlet-3.0-fr-eval-oth-JSpec/
它被包含/捆绑的地方
Servlet-api.jar是Java EE下载的一部分,因此您可以开发Web应用程序(FirstServlet如果Java EE不包含它,则无法编译您的类).
Servlet容器(如Tomcat,JBoss,GlassFish等)也包含servlet-api.jar,否则它们将无法运行您的Web应用程序,而且它们还包含作为Servlet API一部分的接口的实现.
但名称并不总是相同,甚至可能不作为单独的jar存在,Servlet API类可能捆绑在另一个jar中.
但是,如果您只想为Servlet容器开发Web应用程序,或者您想创建/编写自己的Servlet API实现,则可以下载仅包含Servlet API的单独jar文件.看看这里:
http://download.oracle.com/otndocs/jcp/servlet-3.0-fr-eval-oth-JSpec/
可移植性
如果您拥有Servlet API,则可以编译Web应用程序,无论它来自何处.编译完Web应用程序后,您可以选择将其打包到WAR文件(WAR = Web ARchive)中,该文件只是一个包含静态文件,编译的java类和配置文件web.xml等的zip文件.您将能够运行您编译的Web应用程序在任何Servlet容器中(但是可以阅读).
所以回答你的问题#5是:
Servlet API有多个版本,Java EE平台还有更多版本,而不仅仅是Servlet API(例如Enterprise Java Beans).但是可以肯定地说,如果您只使用Servlet API,那么实现该版本Servlet API的所有Servlet容器都将能够运行您的Web应用程序.
不同Web应用程序的配置文件可能不同(在Servlet API范围之外),因此您应始终检查目标Web应用程序的文档.
| 归档时间: |
|
| 查看次数: |
9443 次 |
| 最近记录: |