当前位置: 首页 > 知识库问答 >
问题:

Tomcat如何知道选择哪个jar来运行servlet?

年运珧
2023-03-14

在我的项目中,Apache Tomcat8.5context.xml配置如下。

我检查了这两个JAR,servlet.jar包含常规servlet api类,而Tomcat的servlet-api.jar包含这些常规servlet api类以及许多其他与servlet功能相关的类。

查询:由于运行servlet有两个jar即servlet.jar和servlet-api.jar,那么Tomcat如何知道在运行servlet时选择哪个jar?

共有1个答案

呼延原
2023-03-14

Tomcat将加载自己版本的servlet API,因为这是JavaEE规范所要求的。

JavaEE定义了如何加载和解析类。

通常,类加载器是父类优先的--即尝试从父类加载器加载类,只有当失败时,它们才尝试自己加载类。

    null

您可以在Apache Tomcat的文档中了解更多细节

只要servlet api版本匹配,就不会有任何问题。但是,如果您的Servlet是针对不同的api版本编译的,例如,它们是使用Servlet v4编译的,但是您试图在Servlet v3环境中使用它们,您将得到运行时错误

 类似资料:
  • 然后再次运行,但它也转到GPU0。 我看了相关的问题,如何选择指定的GPU来运行CUDA程序?但是命令不在CUDA 8.0 bin目录中。除了之外,我还看到其他文章引用了环境变量但这些都没有设置,我也没有找到关于如何使用它的信息。 虽然与我的问题没有直接关系,但使用我能够使应用程序在GPU1上运行,但使用不能在GPU0和1上运行。 我正在一个使用bash shell运行的系统上测试这一点,该系统在

  • 我在项目中使用了Spring靴。它内置了tomcat服务器。我找到一个jar < code > spring-boot-starter-Tomcat-1 . 2 . 5 . release . jar 。我需要在linux服务器上做一些与tomcat相关的配置。 我怎么才能知道这个用的是哪个Tomcat版本

  • 问题内容: 我在Linux Ubuntu服务器中搜索php.ini文件所在的路径,并且在执行命令时发现很多php.ini 。那么如何从php.ini所在的php脚本网页中确切地知道呢? 问题答案: 您可以使用php_ini_loaded_file() 取自php.net: 您可能还需要检查php_ini_scanned_files() 另外,您应该注意,如果从CLI运行PHP脚本,则有可能使用与服

  • 问题内容: 我有两个单选按钮,想要发布所选一个的值。如何使用jQuery获得价值? 我可以像这样得到所有这些: 我怎么知道选择了哪一个? 问题答案: 要获取具有ID的表单中 所选 项目的值: 这是一个例子:

  • 问题内容: 给定一个类,例如org.eclipse.ui.views.navigator.ResourceNavigator,如何找出要使用的jar文件?我知道它在org.eclipse.ui.ide中,但是我怎么发现呢? 编辑 :谢谢所有回答的人。像许多事物一样,似乎有几种方法可以给这只猫蒙皮。我希望javadoc包含此信息。到目前为止,这里是不同的方法: 没有Internet,Eclipse或

  • 下面是一个我正在工作的演员的例子: 当对其中一个工作线程的 ask 失败时(在超时的情况下),序列 future 在失败的情况下完成。但是,我想知道哪些工人失败了。有没有一种更优雅的方式,而不是简单地一个接一个地映射listOfFutures而不使用Future.sequence?