(已解决)使用jstl标签库时候出现Message java.lang.ClassNotFoundException: org.apache.jsp.index_jsp

问题详细信息:

HTTP Status 500 – Internal Server Error
Type Exception Report
Message java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
	org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:197)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:413)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Root Cause
java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
	java.net.URLClassLoader.findClass(URLClassLoader.java:382)
	org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:129)
	org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:60)
	org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:192)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:413)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

原因一:没有导入jstl相关包
导入包有两种版本的(jstl 1.0、1.1版本和jstl 1.2版本),分别如下:

1 、jstl 1.0、1.1系列版本;此系列的下载如下包进行导入到工程lib中

  jstl.jar
  standard.jar

对应下载地址:(http://archive.apache.org/dist/jakarta/taglibs/standard/)
2、jstl1.2系列版本;此系列的下载如下包进行导入到工程lib中

taglibs-standard-impl-1.2.5.jar
taglibs-standard-spec-1.2.5.jar 
taglibs-standard-jstlel-1.2.5.jar
xalan-2.7.1.jar
serializer-2.7.1.jar

对应下载地址:(https://archive.apache.org/dist/tomcat/taglibs/)

最后jsp对应页面导入对应标签即可

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

原因二:相关包重复问题
由于tomcat自身已经自带了jsp.jar包和servlet.jar包,查看工程lib包中是否 有javax.servlet.jsp.jar包,找到删除即可。

原因三:版本冲突问题
首先看下图所示jsp,servlet,jdk,tomcat等相关的版本对应关系
在这里插入图片描述
通过图发现,假如你用的servlet和jsp是最新的版本,而jdk使用的是jdk7,可能就会出现冲突,这时候把jdk调整为jdk8;同理tomcat也会出现类似的版本问题,比如修改tomcat5为tomcat7+等。

原因四(重点):相关jstl的jar包没有加入到tomcat的lib中
当我们发现以上原因都不起作用的时候,我们把对应的jstl包在工程lib目录中导入后,同时在tomcat的lib目录中加入此包即可。
在这里插入图片描述
在这里插入图片描述
然后再次打开jsp页面,成功,解决!!!
在这里插入图片描述

原因五:maven项目下JSTL表达式出现如此问题,则可能为pom.xml中dependency的问题,在pom.xml中加入如下内容

<dependency>
  <groupId>org.glassfish.web</groupId>
  <artifactId>javax.servlet.jsp.jstl</artifactId>
  <version>1.2.4</version>
</dependency>
<dependency>
  <groupId>javax.servlet.jsp.jstl</groupId>
  <artifactId>javax.servlet.jsp.jstl-api</artifactId>
  <version>1.2.1</version>
</dependency>

加入该内容后,对应的JSTL的jar包也就不要加入。

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值