Tomcat,Jstl,Servlet-api,jsp-api,standard各版本支持
2017-12-21 14:11
573 查看
一、前言
最近在整合SSM框架,然后引入了SiteMesh2.4布局框架,然后就引出了一系列问题,先是jstl版本报错,然后就是运行项目JSP页面报错等等这一些问题都是由于Tomcat,Jstl,Servlet-api,jsp-api,standard这几者之间的关系导致的。我在项目中引用了jstl1.2,servlet-api3.1.0,jsp-api2.2,standard1.1.2 mavne依赖如下:
Servlet版本用的是3.0,web.xml中的scheme定义为:
由于JSTL1.0和JSTL1.1的声明语句不一样:
我在JSP页面中引用的就是jstl1.1的语法,然后放到Tomcat8中去运行,一运行就报错:
最后发现把语法改成1.0的就能运行,说明Tomcat8不支持1.1,然后发现Tomcat8/lib目录下并没有jstl1.1的jar包,复制一个到该目录下就行了。
如果说是报下面这种错的话,基本上就是由于版本不一致所导致的:
有时候要看EL表达式是否支持,默认开启支持EL表达式支持有:
1、servlet2.4
2、J2EE6
默认不支持EL表达式需要进行如下2种配置中的其一来开启EL:
1、在JSP中加入:
2、在web.xm中加入:
二、对应关系
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/09/a1619400d5d3798b0c98e54d01cd59a8)
Servlet - - Jsp - - EL表达式 - - Tomcat一览表
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/09/6a650d2f6c2084bfb55f5504bbd0b040)
注:
1,来源自Tomcat官网:http://tomcat.apache.org/whichversion.html
JSTL各个版本与Jsp及Servlet版本之间的依赖关系:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/09/c76a97a523ed19e388f0cf470b677164)
注:
1,来源自百度百科:http://baike.baidu.com/view/73527.htm
最近在整合SSM框架,然后引入了SiteMesh2.4布局框架,然后就引出了一系列问题,先是jstl版本报错,然后就是运行项目JSP页面报错等等这一些问题都是由于Tomcat,Jstl,Servlet-api,jsp-api,standard这几者之间的关系导致的。我在项目中引用了jstl1.2,servlet-api3.1.0,jsp-api2.2,standard1.1.2 mavne依赖如下:
<!-- Servlet api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>3.1.0</artifactId> <version></version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> </dependency> <!-- JSTL --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <type>jar</type> <version>1.2</version> </dependency> <!-- standard --> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <type>jar</type> <version>1.1.2</version> </dependency> <dependency> <groupId>org.glassfish.web</groupId> <artifactId>jstl-impl</artifactId> <version>1.2</version> <exclusions> <exclusion> <artifactId>servlet-api</artifactId> <groupId>javax.servlet</groupId> </exclusion> <exclusion> <artifactId>jsp-api</artifactId> <groupId>javax.servlet.jsp</groupId> </exclusion> <exclusion> <artifactId>jstl-api</artifactId> <groupId>javax.servlet.jsp.jstl</groupId> </exclusion> </exclusions> </dependency>
Servlet版本用的是3.0,web.xml中的scheme定义为:
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
由于JSTL1.0和JSTL1.1的声明语句不一样:
JSTL1.0的使用方法为: <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %> JSTL1.1的使用方法为: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> JSTL1.2的使用方法为 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
我在JSP页面中引用的就是jstl1.1的语法,然后放到Tomcat8中去运行,一运行就报错:
org.apache.jasper.JasperException: /register.jsp (line: 10, column: 1) The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
最后发现把语法改成1.0的就能运行,说明Tomcat8不支持1.1,然后发现Tomcat8/lib目录下并没有jstl1.1的jar包,复制一个到该目录下就行了。
如果说是报下面这种错的话,基本上就是由于版本不一致所导致的:
org.apache.jasper.JasperException: java.lang.RuntimeException: org.apache.jasper.JasperException:
有时候要看EL表达式是否支持,默认开启支持EL表达式支持有:
1、servlet2.4
2、J2EE6
默认不支持EL表达式需要进行如下2种配置中的其一来开启EL:
1、在JSP中加入:
<%@ page isELIgnored="false"%>
2、在web.xm中加入:
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <el-ignored>false</el-ignored> </jsp-property-group> </jsp-config>
二、对应关系
Servlet - - Jsp - - EL表达式 - - Tomcat一览表
注:
1,来源自Tomcat官网:http://tomcat.apache.org/whichversion.html
JSTL各个版本与Jsp及Servlet版本之间的依赖关系:
注:
1,来源自百度百科:http://baike.baidu.com/view/73527.htm
相关文章推荐
- tomcat、servlet、JSP、JSTL版本支持对应表
- IT忍者神龟之tomcat、servlet、JSP、JSTL版本支持对应表
- tomcat、servlet、JSP、JSTL版本支持对应表
- tomcat、servlet、JSP、JSTL版本支持对应表
- tomcat、servlet、JSP、JSTL版本支持对应表
- tomcat、servlet、JSP、JSTL版本支持对应表
- tomcat、servlet、JSP、JSTL版本支持对应表
- Tomcat支持的JDK、JSP、Servlet、EL 、WebSocket 和JASPIC的版本
- tomcat 、jsp、 servlet 、jstl版本对应
- Tomcat版本问题,以及servlet-api.jar,jsp-api.jar去除
- tomcat各版本和jsp、jstl、servlet的依赖关系(转)
- tomcat各版本和jsp、jstl、servlet的依赖关系
- JSP/Servlet,Tomcat,Jstl各版本对比以及如何查看版本
- Tomcat版本与Servlet、JSP等版本的支持关系
- Tomcat版本与Servlet、JSP等版本的支持关系
- Tomcat Servlet JSP JSTL间的版本依赖关系
- Tomcat Servlet JSP JSTL间的版本依赖
- Servlet与JSP版本历史以及Tomcat支持的版本
- Tomcat不同版本对Servlet和JSP规范版本的支持和对应关系
- eclipse note:关于工程包丢到tomcat及jsp-api.jar//servlet-api.jar