解决在web.xml中添加filter后idea提示错误的问题

  之前在整合SSM框架的时候,配置web.xml的时候一直提示错误,但filter、servlet的顺序写的也是对的,而且项目也能正常运行。
错误提示:

The content of element type "web-app" must match "(icon?,display-name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,welcome-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-constraint*,login-config?,security-role*,env-entry*,ejb-ref*,ejb-local-ref*)

后来发现是web.xml的头部声明的问题。由于当时用的是maven创建的,默认使用的是Servlet2.3模板。最后改成Servlet3.1的就好了。

Servlet 3.1:
Java EE 7 XML schema,命名空间是 http://xmlns.jcp.org/xml/ns/javaee/
JSTL标签库使用<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
        version="3.1">

web-app>

Servlet 3.0:
Java EE 6 XML schema,命名空间是 http://java.sun.com/xml/ns/javaee


<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">

web-app>

Servlet 2.5:
Java EE 5 XML schema,命名空间是 http://java.sun.com/xml/ns/javaee


<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_2_5.xsd"
          version="2.5">

web-app>

Servlet 2.4:
Java EE 1.4 XML schema, 命名空间是 http://java.sun.com/xml/ns/j2ee


<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
          http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
          version="2.4">

web-app>

Servlet 2.3:
Java EE 1.3 DTDs schema
JSTL标签库使用<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>



<web-app>
  <display-name>Servlet 2.3 Web Applicationdisplay-name>
web-app>

下面来罗列一下JSP中各个版本的JSTL的taglib的引用方式:
JSTL1.0(要求(必须满足此条件):Servlet 2.3, JavaServer Pages 1.2)的使用方法:
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>

JSTL1.1(要求(必须满足此条件):Servlet 2.4, JavaServer Pages 2.0)的使用方法:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

JSTL1.2(要求(必须满足此条件):Servlet 2.5, JavaServer Pages 2.1)的使用方法:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

不同版本的Java EE对应的要求:

Version Released in
JEE2 (J2EE 1.2) 12 Dec 1999 Servlet 2.2 JSP 1.1
JEE3 (J2EE 1.3) 24 Sep 2001 Servlet 2.3 JSP 1.2 JSTL 1.0
JEE4 (J2EE 1.4) 11 Nov 2003 Servlet 2.4 JSP 2.0 JSTL 1.1 JSF1.1
JEE5 11 May 2006 Servlet 2.5 JSP 2.1 EL2.1 JSTL 1.2 JSF 1.2
JEE6 10 Dec 2009 Servlet 3.0 JSP 2.2 EL 2.2 JSTL 1.2 JSF 2.0
JEE7 12 Jun 2013 Servlet 3.1 JSP 2.3 EL 3.0 JSTL 1.2 JSF 2.2

你可能感兴趣的:(解决在web.xml中添加filter后idea提示错误的问题)