JSTL导包踩坑

JSTL导包踩坑

期末考试,考了JSTL,我正常的用maven导了下面两个包,用的JDK1.8,tomcat9.0.68。

我明明导了包,可是却给我报了个错。还在考试呢,就给我搞这种【悲伤】。

<!--JSTL表达式-->
<dependency>
    <groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>
<!--standard标签库-->
<dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <version>1.1.2</version>
</dependency>

image-20221216131001777

后来我换了tomcat8.5.78程序正常运行。

还好我还有一个tomcat8,不然考试直接吃零蛋。

后来考完试,我保持这好奇心,为什么我的tomcat9就运行不了。然后去网上搜,一搜一堆破烂玩意儿。

再后来我下了个tomcat10.0.27试了一下,不试不知道,一试吓一跳。

我用tomcat10,通过注解@WebServlet访问我的Servlet却找不到,报404,然后就去百度,发现原来是包不对。

在创建javaWeb项目时,会给你导一个Servlet的包。

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

这个包在tomcat10之前都好使,但tomcat10以后就要导这两个包。

<dependency>
    <groupId>jakarta.servlet</groupId>
    <artifactId>jakarta.servlet-api</artifactId>
    <version>5.0.0</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>jakarta.servlet.jsp</groupId>
    <artifactId>jakarta.servlet.jsp-api</artifactId>
    <version>3.0.0</version>
    <scope>provided</scope>
</dependency>

导了正确的包以后,Servlet可以正常的访问到了,但是JSTL又不行了。

后面再百度,tomcat10原来用的JSTL包又是不一样的。

<dependency>
    <groupId>org.glassfish.web</groupId>
    <artifactId>jakarta.servlet.jsp.jstl</artifactId>
    <version>2.0.0</version>
</dependency>
<dependency>
    <groupId>org.apache.taglibs</groupId>
    <artifactId>taglibs-standard-spec</artifactId>
    <version>1.2.5</version>
</dependency>

tomcat10要用JSTL,还得导这两个包。

导完包后再去使用标签,直接就正常运行了。

至于我的tomcat9,还是用不了JSTL,所以我还是决定走在前头,接触新技术,用tomcat10吧,毕竟几年后,总得用高版本的东西。

end
  • 作者:UG666(联系作者)
  • 发表时间:2022-12-16 14:34
  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
  • 转载声明:如果是转载博主转载的文章,请附上原文链接
  • 评论