JavaEE中servlet的版本问题

用maven命令行创建的java web项目,结果发现不支持EL表达式,查了一下资料说是servlet的版本问题,需要在jsp中加上<%@page isELIgnored="false" %>或者修改web-app
的servlet版本,在jsp中加上标签后确实可以用了,但是关于修改web-app的版本没有尝试成功,并且还有几个疑问想请大神帮着解答一下:
关于servlet版本,查资料说看servlet版本是把tomcat/lib中的jsp-api和servlet-api解压看版本

  1. tomcat中的这个servlet和jsp的版本跟我的项目的servlet版本有关系吗,是什么关系
  2. 在项目中的web.xml中文件头的版本跟servlet版本有什么直接关系吗

【1】tomcat中的这个servlet和jsp的版本跟我的项目的servlet版本有关系吗,是什么关系
项目中时要有servlet的依赖,,题主时maven项目,,pom.xml得有如下配置:

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

在项目中的web.xml中文件头的版本跟servlet版本有什么直接关系吗
这个时声明当前项目的版本,不是servlet的版本,,比如web2.5,,web3.0之类的。
servlet的版本时上面配置依赖的版本

版本对应关系,网上有张图

图片说明

有问题还可以追问

Tomcat中配置都是全局配置,包括对Serverlet以及jsp

我也遇上过类似的问题,就是导入jsp依赖跟servlet依赖之后,jsp页面一直报错。上网查了之后说是包冲突了,排除版本问题,serclet依赖包跟jstl包导入的时候有一个包会自动依赖,造成依赖包重复。最后好像是设置只加载一个依赖,解决了。
大致是因为依赖重复 重复编译

设置重复的依赖不编译

用以下替换对应的依赖:pom.xml文件中

<dependency>
        <groupId>javax.servlet.jsp.jstl</groupId>
        <artifactId>jstl-api</artifactId>
        <version>1.2</version>
        <exclusions>
            <exclusion>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
            </exclusion>
            <exclusion>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>jsp-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>taglibs</groupId>
        <artifactId>standard</artifactId>
        <version>1.1.2</version>
    </dependency>