java javax.servlet_关于Java:无法解析导入javax.servlet

本问题已经有最佳答案,请猛点这里访问。

我正在尝试使用Eclipse for Java EE开发Web应用程序。

我需要使用Tomcat作为服务器。 我已经下载了Tomcat并且它正在运行。 但是我的程序无法编译。

我收到以下错误:

The import javax.servlet can't be resolved.

我需要做什么?

您需要将Servlet API添加到类路径中。在Tomcat 6.0中,它位于Tomcat的lib文件夹中名为servlet-api.jar的JAR中。您可以将对该JAR的引用添加到项目的类路径中,或者将JAR的副本放入Eclipse项目中,然后从那里将其添加到类路径中。

如果要将JAR保留在Tomcat的lib文件夹中:

右键单击该项目,然后单击"属性"。

选择" Java构建路径"。

单击库选项卡

单击添加外部JAR ...

浏览找到servlet-api.jar并选择它。

单击确定以更新构建路径。

或者,如果将JAR复制到项目中:

右键单击该项目,然后单击"属性"。

选择" Java构建路径"。

点击添加JAR ...

在您的项目中找到servlet-api.jar并选择它。

单击确定以更新构建路径。

在WEB-INFlib中拥有servlet容器特定的JAR副本将使您的应用程序不可移植。它只能在完全相同的服务器版本上运行,而不能在其他服务器版本上运行。 NoClassDefFoundError会在你的头上飞舞。

我从没说过它应该放在WEB-INFlib中-只是可以将其复制到项目中,以便可以将其添加到构建路径中。这并不一定意味着它已包含在WAR中。

即便如此,那还是很笨拙而不是推荐的方法。

这是解决方法。确切的解决方案由下面的BalusC给出。

添加servlet-api.jar,项目> clean并没有改变。

创建新项目后移动Apache tomcat目录,只需在具有新tomcat服务器目录的新项目工作区中创建新项目即可。

在WebLogic 9上运行Struts 1.x项目无法解析ActionForm中的import javax.servlet.http.HttpServletRequest。将servlet-api.jar添加到构建路径后,错误消失。谢谢。

为我工作。谢谢

如果尚未完成,则需要在服务器视图中集成Tomcat。右键单击那里,然后选择"新建">"服务器"。从列表中选择适当的Tomcat版本,然后完成向导。

创建新的Dynamic Web Project时,应在第一个向导步骤中从列表中选择集成服务器作为Targeted Runtime。

或者,如果您已有一个动态Web项目,则可以在项目属性的"目标运行时"条目中进行设置/更改。然后,Eclipse将自动将其所有库添加到构建路径(在项目中没有它们的副本!)。

从长远来看,可能是最好的建议。

这更有用。

@sage:Eclipse还对服务器集成后创建的新项目执行此操作。

对我不起作用,我拥有您所说的一切,但仍然无法解析javax.servlet(使用Tomcat 8.0.3作为服务器)

我一直使用这种方法,并且始终对我有效。但是有时我会忘记在哪里进行设置。所以我在这里发表评论,以帮助以后找到我的帖子。

您需要在POM中将依赖项的范围设置为"已提供"。

http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope

javax.servlet

servlet-api

2.4

provided

那一切都会好起来的。

将servlet-api.jar添加到您的类路径中。您可以从tomcat的lib文件夹中获取它。

我遇到了同样的问题,因为我的"动态Web项目"没有引用我要使用的已安装服务器,因此也没有引用该服务器提供的Servlet API。

以下步骤解决了该问题,而没有向Java Build Path(Eclipse版本:Luna)添加额外的Servlet-API:

右键单击"动态Web项目"

选择属性

在"属性"向导左侧的列表中选择"项目构面"

在向导的右侧,您应该看到一个名为Runtimes的选项卡。选择"运行时"选项卡,然后检查要运行servlet的服务器。

编辑:如果没有列出服务器,则可以在"运行时"选项卡上创建一个新服务器

添加到pom.xml

javax.servlet

javax.servlet-api

3.1.0

请注意,如果使用maven时仍然出现此问题,那么我们只需要再次重新构建项目,以使其能够从依赖项中识别出更改即可。

如果收到此编译错误,则意味着您没有在类路径中包含servlet jar。包含此jar的正确方法是将Server Runtime jar添加到eclipse项目。您应该按照以下步骤解决此问题:

您可以从此处下载servlet-api.jar

http://www.java2s.com/Code/Jar/s/Downloadservletapijar.htm

Save it in directory. Right click on project -> go to properties->Buildpath and follow the steps.

注意:屏幕上显示的罐子不是正确的罐子。

您可以按照以下步骤进行配置。

ef2b5ee7d126dcb8b60ce517b724b7b2.png

aa93d1f3317b45d9058429670be42c9a.png

09aaf76cb9a110cc8747b31c00a297ff.png

cb09fac0e398a9c224b6c447a250a4ad.png

在Eclipse中也有同样的问题。由于某种原因,我的构建路径中没有servlet.jar文件。我最后要做的是将一个" lib"文件夹从我的另一个项目复制到我正在处理的项目,然后手动进入该文件夹并将servlet.jar文件添加到构建路径中(当您选择单击项目浏览器中的文件)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值