如何在Eclipse项目中导入javax.servlet API?

tom*_*tom 313 java eclipse servlets

我想在Eclipse中使用Servlet进行开发,但它说javax.servlet无法解析包.如何将javax.servlet包添加到Eclipse项目中?

Bal*_*usC 404

确保您拥有正确的Eclipse和Server

确保您至少使用Eclipse IDE for Java EE开发人员(使用EE).它包含用于创建动态Web项目和轻松集成servlet容器的开发工具(这些工具是Web Tools Platform,WTP的一部分).如果你已经有Eclipse IDE for Java(没有EE),并且手动安装了一些与EE相关的插件,那么很可能它没有正确完成.你最好把它丢弃并抓住真正的Java IDE for Java EE.

您还需要确保已在计算机上安装了servletcontainer,该servletcontainer至少实现与生产环境中的servletcontainer相同的Servlet API版本,例如Apache Tomcat,Oracle GlassFish,JBoss AS/WildFly等.通常,只需下载ZIP文件并提取它就足够了.如果是Tomcat,请不要下载EXE格式,这仅适用于基于Windows的生产环境.另请参阅ao Tomcat服务器在localhost上所需的几个端口(8005,8080,8009)已在使用中.

servletcontainer是Servlet API的具体实现.请注意,Oracle.com 上的Java EE SDK下载基本上包含GlassFish.因此,如果您已经下载了Java EE SDK,那么您基本上已经拥有了GlassFish.另外请注意,例如GlassFish和JBoss的AS/WildFly是不仅仅是一个servletcontainer,他们也支持JSF,EJB,JPA和所有其他Java EE的空想.另请参阅ao Java EE究竟是什么?


在Eclipse中集成服务器并将其与Project关联

在计算机上安装了Eclipse for Java EE和servletcontainer后,在Eclipse中执行以下步骤:

  1. 在Eclipse中集成servletcontainer

    一个.通过Servers视图

    • 打开底部框中的Servers视图.
    • 右键单击并选择" 新建">"服务器".
    • 选择适当的servletcontainer品牌和版本,然后浏览向导.

      在此输入图像描述

    或者,通过Eclipse首选项

    • 打开窗口>首选项>服务器>运行时环境.
    • 您可以在此处添加,编辑删除服务器.

      在此输入图像描述

  2. 将服务器与项目关联

    一个.在新项目中

    • 打开左侧的Project Navigator/Explorer.
    • 右键单击并选择New> Project,然后在菜单Web> Dynamic Web Project中.
    • 在向导中,将Target Runtime设置为集成服务器.

      在此输入图像描述

    或者,在现有项目中

    • 右键单击项目,然后选择" 属性".
    • 在" 目标运行时"部分中,选择集成服务器.

      在此输入图像描述

    无论哪种方式,Eclipse都会自动在构建路径中获取servletcontainer的库.这样您就可以导入和使用Servlet API.


永远不要携带松散的服务器特定的JAR文件

在任何情况下,您都不需要在项目的Build Path属性中摆弄.你应该首先从不手动复制/下载/移动/包括个别特定servletcontainer-库,例如servlet-api.jar,jsp-api.jar,el-api.jar,j2ee.jar,javaee.jar,等它只会导致未来的可移植性,兼容性,类路径和可维护性的烦恼,因为当它是你的web应用程序将无法正常工作部署到与最初从中获取这些库的make/version不同的servlet容器.

如果您正在使用Maven,则需要确保已将目标运行时已提供的特定于servlet容器的库标记为<scope>provided</scope>.

下面是一些典型的例外,你可以当你的垃圾/WEB-INF/lib,甚至/JRE/lib,/JRE/lib/ext等在一个不小心尝试修复编译错误特定servletcontainer的库:

  • @BalusC如果我使用Apache Ant构建我的项目,如何动态地包含servlet容器的/lib(servlet-api.jar和jsp-api.jar)文件夹?或者我需要硬编码/ lib文件夹的路径,如 - `<property name ="tomcat.home"value ="D:\\ Program Files \\ Apache Software Foundation \\ apache-tomcat-6.0.36"等等 (4认同)
  • @BalusC 为什么使用原型 `maven-archetype-webapp` 创建的 Maven 项目不包含 servlet-api JAR 作为依赖项?该项目有一个存在编译错误的index.jsp。(Eclipse Luna 版本 ID:20140612-0600、JDK 8、M2eclipse) (2认同)

pra*_*upd 218

import javax.servlet

步骤1

转到项目的属性(使用Alt+ Enter或righ-click)

第2步

Targeted Runtime下查看Apache Tomcat v7.0并且它可以正常工作.

  • 帮我添加了JBOSS运行时.我的清单是空的. (2认同)
  • 这是我的解决方案.我已经将tomcat 6.0设置为我的部署环境(作为eclipse中的服务器),但忽略了将其指定为我的运行时环境...我猜这意味着它可以在运行时在我的tomcat/lib文件夹中找到.jars,但不是在编译时. (2认同)

小智 79

与Hari有点不同:

右键单击项目---> Properties ---> Java Build Path ---> Add Library ... ---> Server Runtime ---> Apache Tomcat ----> Finish.

  • 您好ivanLam,Apache Tomcat在服务器运行时之后没有显示?现在做什么! (3认同)

sar*_*ath 14

从服务器lib文件夹中包含servlet-api.jar.在此输入图像描述

这一步

在此输入图像描述


Har*_*dla 12

快速修复 - 这在Eclipse中工作 - 右键单击​​项目 - >属性 - > Java构建路径(Tab) - >添加外部JAR - >找到servlet api jar实现(如果Tomcat - 其名为servlet-api.jar) - >单击确定.而已 !!

  • 参考上面的BalusC帖子从不手动复制/下载/移动/包含各个servletcontainer特定的库,如`servlet-api.jar`,`jsp-api.jar`,`el-api.ja`r,`j2ee. jar`,`javaee.jar`等.它只会导致未来的可移植性,兼容性,类路径和可维护性问题. (14认同)

Zee*_*ter 11

在pom.xml中添加javax.servlet依赖项.你的问题将得到解决.

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.0.1</version>
    <scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)


Job*_*ews 6

对于 Maven 项目添加以下依赖项:

<!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.0.1</version>
    <scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

参考

对于 gradle 项目:

dependencies {
providedCompile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.0.1'
}
Run Code Online (Sandbox Code Playgroud)

或下载javax.servlet.jar并添加到您的项目中。


Mit*_*ari 5

您可以简单地servlet-api.jar将该jar文件复制并复制到lib文件夹中,该文件夹位于WEB-INF中.然后只需清理并构建您的项目,您的错误就会得到解决.

  **OR**
Run Code Online (Sandbox Code Playgroud)

您可以使用以下步骤直接将jar文件添加到库中.

  1. 右键单击项目.
  2. 转到属性.
  3. 转到Java Build Path.
  4. 从选项卡中选择添加库选项.
  5. 添加Jar文件
  6. 给出你的servlet-api.jar文件的路径.
  7. 清理并构建您的项目.


PKU*_*PKU 5

我知道这是一个老帖子.但是,我观察了另一个实例,在该项目中已经添加了Tomcat,但我们仍然遇到此错误.这样做是为了解决这个问题:
Alt + Enter
Project Facets
右边的细节旁边是另一个标签"Runtimes".安装的tomcat服务器将在那里列出.选择它.
保存配置并完成!

希望这有助于某人.


归档时间:

查看次数:

610621 次

最近记录:

6 年 前