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


当前回答

我知道这是一个老帖子。然而,我观察到另一个实例,在该项目中已经添加了Tomcat,但我们仍然得到这个错误。这样做是为了解决: Alt + Enter 项目方面 在右边,在详细信息旁边,是另一个选项卡“运行时间”。 已安装的tomcat服务器将列在那里。选择它。 保存配置并完成!

希望这能帮助到一些人。

其他回答

对于专业项目,添加以下依赖项:

<!-- 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>

参考

对于gradle项目:

dependencies {
providedCompile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.0.1'
}

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

从维基百科。

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloWorld extends HttpServlet {
  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    PrintWriter out = response.getWriter();
    out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
                "Transitional//EN\">\n" +
                "<html>\n" +
                "<head><title>Hello WWW</title></head>\n" +
                "<body>\n" +
                "<h1>Hello WWW</h1>\n" +
                "</body></html>");
  }
}

当然,这只有在将servlet-api.jar添加到Eclipse构建路径时才有效。通常,您的应用服务器(例如Tomcat)将拥有正确的jar文件。

假设有一个简单的动态Web项目。确保Tomcat存在于项目的构建路径中。

首先在您的机器上下载/安装本地tomcat实例。假设我们安装了tomcat v8.5。

现在配置Eclipse全局服务器运行时环境

Windows > Preferences > Server > Runtime Environments > Add > Apache > Apache Tomcat v8.5 > Next > Browse Tomcat Installation directory > Next > Finish.

现在创建动态web项目,我们看到导入javax。Servlet无法解决问题。请按照以下步骤解决此问题。

Right Click On Project > Build Path > Configure Build Path > Libraries > Add Library > Server Runtime > Select your Apache Tomcat instance > Finish > Apply and Close.

所有的错误都会消失。

添加javax。xml中的Servlet依赖项。你的问题会解决的。

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.0.1</version>
    <scope>provided</scope>
</dependency>

最重要的是,不要手动复制/下载/移动/包含特定于servletcontainer的单个库,比如servlet-api.jar

@BalusC,

我更愿意使用我的应用程序将要使用的确切类,而不是Eclipse提供的类(当我感觉自己像一个偏执的开发人员时)。

另一个解决方案是使用Eclipse“配置构建路径”>库>添加外部jar,并添加任何容器的servlet api。

并且在使用ant构建时遵循@kaustav datta的解决方案-拥有一个类似tomcat的属性。Home或weblogic.home。 然而,它引入了另一个约束,如果使用Weblogic,开发人员必须在他/她的本地机器上安装Weblogic ! 还有其他更清洁的解决方案吗?