我需要了解有关编译servlet所需的serlvet-api.jar的信息。
我正在构建一个简单的servlet,如下所示:
import javax.servlet.*;
import javax.servlet.http.*;
public class FirstServlet extends HttpServlet {
// Remaining code here
}
我知道我们需要servlet-api.jar文件来编译这个简单的servlet,如下所示:
javac -classpath /path/where/jar/is/servlet-api.jar
现在我的疑惑从这里开始:
假设我们使用Tomcat编译/构建简单的servlet(即构建servlet所需的tomcat版本的jar)并创建一个.war文件。然后我们可以在其他供应商容器中部署战争吗?
它是什么?
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)中,该文件只是一个zip文件,其中包含您的静态文件,已编译的Java类和配置文件(例如)web.xml
。您将能够运行您在任何Servlet容器中编译的Web应用程序(但请继续阅读)。
因此,您对问题5的回答是:
Servlet API有多种版本,而Java EE平台不仅仅具有Servlet API(例如,Enterprise Java
Bean)。但是可以肯定地说,如果仅使用Servlet API,则实现该Servlet API版本的所有Servlet容器都将能够运行您的Web应用程序。
但是,不同Web应用程序的配置文件可能有所不同(它在Servlet API范围之外),因此您应始终检查目标Web应用程序的文档。
我对javaee/EJB比较陌生,我已经读了很多关于javaee容器的书。我有使用web容器(JBoss中的WAR文件)的经验。我还知道JBoss也可以用作JavaEE容器。 JavaEE容器和Web容器之间的区别是什么? 我知道JavaEE也能够包含一个。战争档案。它们不同吗?它们的区别是什么?是否有特定于供应商的偏好,哪一个更好?
我从1.8升级了nginx。0到1.9。今天7点,为了让一个网站重新工作,他不得不换几行。现在它可以在ssl(443)上工作,但不能在http(80)上工作。我必须将fastcgi_参数更改为fastcgi。形态。 当我通过Cloud flare尝试一个网站时,它说与我的服务器没有连接。直接连接我得到一个下载的文件。看起来像一个压缩文件,在浏览器上没有得到解压缩。这是标题。 浏览器或服务器上没有错
我在运行nginx的Ubuntu服务器上安装WordPress。安装进行得相当顺利(以下安装LEMP和安装WordPress教程-带我通过mysql,php5-fpm和wordpress安装),似乎大部分工作。我可以查看Wordpress管理页面,创建博客帖子,甚至查看这些帖子。但是当我试图访问我博客的主页(例如index.php)时,nginx将文件作为下载而不是执行。我已经尝试了Nginx s
Servlet Container(Servlet 容器) 是 Web 服务器或者应用服务器的一部分,用于提供基于请求/响应发送模式的网络服务,解码基于 MIME 的请求,并且格式化基于 MIME 的响应。Servlet 容器同时也包含和管理他们的生命周期里 Servlet。 Servlet 容器可以嵌入到宿主的 Web 服务器中,或者通过 Web 服务器的本地扩展 API 单独作为附加组件安装。
假设我们使用GitHub操作构建并发布应用程序的容器映像。我将选择ASP.NET Core作为应用程序的技术堆栈,尽管这不太重要。 我想讨论两种不同的方法: 1.“外部构建”:在GitHub Actions runner中构建/编译应用程序,将输出复制到容器映像中 例如,我们的GitHub操作工作流文件可能如下所示... ...有一个简单的Dockerfile像这样: 2.“内置”:内置一个容器,
Standford Core NLP和GATE提供各种NLP操作,如NER、词性标注。有一些NLP操作,比如标记器、雪球词干分析器,可以作为UIMA组件使用。那么,UIMA是可以与StandfordCore NLP/GATE相媲美,还是可以用来包装管道中的此类API?