java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet

java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet

最近开始学习Java EE课程,在学到Servlet技术并动手实践的时候,遇到了这么个问题,困扰了很久,百度了好几天都没找着症结,今天终于才发现问题所在。
我使用的IDE:
IDEA 2020.2,主要MyEclipse等一些IDE不仅是收费的,而且代码提示等功能都不太舒服
然后一开始用的Tomcat版本:
在这里插入图片描述
于是问题就不可避免地出现了,无论怎么配置,切换到Servlet页面的时候还是会报错!
网上很多博客都说的是 导入Tomcat的lib文件夹里的 servlet-api.jar 包,但是试了很多次,没有用
最后发现的症结:
Tomcat 10支持的Servlet版本是 5.0,而我的IDEA支持的Servlet版本是 4.0(在创建项目的时候可以注意看一下)
在这里插入图片描述
这当然不能通过了!!!
Tomcat版本换成9.0的,一切迎刃而解,完全不需要导入什么jar包
各位如果有类似问题,可以检查一下自己Tomcat的版本和IDE的版本是不是匹配

附:tomcat各版本的区别 https://blog.csdn.net/qq_37651267/article/details/94592106
自己也可以查看Tomcat的 NOTICE 文件,用记事本打开就好,里面就有支持的版本说明

  • 32
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
### 回答1: "java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet" 这个错误消息表明程序在运行时找不到 javax.servlet.http.HttpServlet 这个类,通常是因为没有将相关的 Servlet API 库添加到 classpath 中。请检查项目的依赖配置并确保已经正确添加了该库。 ### 回答2: java.lang.noclassdeffounderror: javax/servlet/http/httpservletJava编程中常见的错误之一,它通常表示缺少servlet相关的jar包或者类文件。在Java Web应用中,javax.servletJava Servlet API,是用于处理HTTP请求和响应的Java API的一部分。httpservletHttpServlet类的完全限定名,是一个用于处理HTTP协议的Java Servlet API类。而这个错误通常是因为缺少servlet-api.jar包或者在编译和运行时环境中没有设置servlet-api.jar包的路径。 解决这个问题的方法包括下面几种。 一、将相关的jar包添加到工程中,或者确认工程的classpath是否包含相关的jar包。 二、在编译时设置JAVA_HOME环境变量和CLASSPATH环境变量,例如在Windows系统下,在控制台中输入命令: set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_121 set CLASSPATH=%JAVA_HOME%\jre\lib\charsets.jar;%JAVA_HOME%\jre\lib\deploy.jar;%JAVA_HOME%\jre\lib\ext\access-bridge-64.jar;%JAVA_HOME%\jre\lib\ext\C:\tomcat\lib\servlet-api.jar;%JAVA_HOME%\jre\lib\ext\jfxrt.jar;%JAVA_HOME%\jre\lib\ext\localedata.jar;%JAVA_HOME%\jre\lib\ext\nashorn.jar;%JAVA_HOME%\jre\lib\ext\sunec.jar;%JAVA_HOME%\jre\lib\ext\sunjce_provider.jar;%JAVA_HOME%\jre\lib\ext\sunmscapi.jar;%JAVA_HOME%\jre\lib\ext\sunpkcs11.jar;%JAVA_HOME%\jre\lib\ext\zipfs.jar;%JAVA_HOME%\jre\lib\javaws.jar;%JAVA_HOME%\jre\lib\jce.jar;%JAVA_HOME%\jre\lib\jfr.jar;%JAVA_HOME%\jre\lib\jfxswt.jar;%JAVA_HOME%\jre\lib\jsse.jar;%JAVA_HOME%\jre\lib\management-agent.jar;%JAVA_HOME%\jre\lib\plugin.jar;%JAVA_HOME%\jre\lib\resources.jar;%JAVA_HOME%\jre\lib\rt.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 三、在开发工具中添加Tomcat运行环境,这样开发工具会根据Tomcat运行环境中的servlet-api.jar包来进行编译和运行。 总的来说,java.lang.noclassdeffounderror: javax/servlet/http/httpservlet问题的解决方法主要是确认工程中是否包含相关的jar包,或者设置正确的运行环境路径,或者配置开发工具的相关设置。需要注意的是,在解决这个问题的过程中,我们也需要学会查看相关的错误信息和日志,以便更好地排查问题的根源并做出及时有效的解决。 ### 回答3: java.lang.noclassdeffounderror: javax/servlet/http/httpservlet 是一个Java运行时异常,通常在使用Java ServletJavaServer Pages时出现。这个错误的原因是在运行时没有找到所需类的定义。 通常情况下,这个错误是由于缺少相关依赖包或相关类文件无法被访问所致。如何解决这个问题取决于具体的情况。 如果是缺少相关依赖包,可以通过以下步骤来解决这个问题: 1. 确认所需依赖包已经添加到项目中,例如servlet-api.jar或者jstl.jar等等。 2. 确认依赖包的路径是否正确配置,特别是在使用IDE时,很多情况下IDE会默认添加依赖包,但可能路径不正确。 3. 确认所需依赖包是否与项目的Java版本兼容,如果依赖包使用的是Java8,而项目使用的是Java7,则会出现这个错误。 如果是相关类文件无法被访问,可以通过以下步骤来解决这个问题: 1. 确认项目的类路径配置是否正确,特别是在使用IDE时,可能需要手动添加类路径。 2. 确认相关的类文件是否存在,如果不存在,可能需要重新下载或者更换版本。 3. 确认相关的类文件是否可读,如果不可读,可能需要使用chmod命令修改文件权限。 总之,java.lang.noclassdeffounderror: javax/servlet/http/httpservlet 这个错误可以通过确认依赖包或相关类文件的存在、可读性以及与项目的兼容性来解决。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值