zoukankan      html  css  js  c++  java
  • [Spring实战系列](19)Servlet不同版本号之间的差别

    1.   2.3版本号

    2.3版本号
    <!DOCTYPE web-app PUBLIC
     "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     "http://java.sun.com/dtd/web-app_2_3.dtd" >
    
    <web-app>
      <display-name>Servlet 2.3 Web Application</display-name>
    </web-app>

    这个有个缺点

    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*)". eoso/WebRoot/WEB-INF

    意思是说  web-app里的标签有一定的顺序

    <!DOCTYPE web-app PUBLIC
     "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     "http://java.sun.com/dtd/web-app_2_3.dtd" >
    <web-app>
        <display-name>Archetype Created Web Application</display-name>
        <!--servlet-->
        <servlet>
            <servlet-name>LoginServlet</servlet-name>
            <servlet-class>com.qunar.fresh.servlet.LoginServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>LoginServlet</servlet-name>
            <url-pattern>/login.do</url-pattern>
        </servlet-mapping>
        <servlet>
            <servlet-name>AccessServlet</servlet-name>
            <servlet-class>com.qunar.fresh.servlet.AccessServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>AccessServlet</servlet-name>
            <url-pattern>/a/*</url-pattern>
        </servlet-mapping>
    </web-app>

    需改成:

    <!DOCTYPE web-app PUBLIC
     "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     "http://java.sun.com/dtd/web-app_2_3.dtd" >
    <web-app>
        <display-name>Archetype Created Web Application</display-name>
        <!--servlet-->
        <servlet>
            <servlet-name>LoginServlet</servlet-name>
            <servlet-class>com.qunar.fresh.servlet.LoginServlet</servlet-class>
        </servlet>
        <servlet>
            <servlet-name>AccessServlet</servlet-name>
            <servlet-class>com.qunar.fresh.servlet.AccessServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>LoginServlet</servlet-name>
            <url-pattern>/login.do</url-pattern>
        </servlet-mapping>
        <servlet-mapping>
            <servlet-name>AccessServlet</servlet-name>
            <url-pattern>/a/*</url-pattern>
        </servlet-mapping>
    </web-app>

    2.  2.4版本号

    2.4版本号
    <web-app version="2.4" 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">

    2.4以上版本号就可以解决上面问题。

    可是2.4及下面版本号会有一个问题:(多个url不能映射到同一个servlet)

        <servlet-mapping>
            <servlet-name>mvc-dispatcher</servlet-name>
            <url-pattern>/index</url-pattern>
            <url-pattern>/login</url-pattern>
        </servlet-mapping>

    3.  2.5版本号

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

    2.5以上版本号就可以解决多个url不能映射到同一个servlet的问题。

    4. 3.0版本号

    <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>
      <display-name>Servlet 3.0 Web Application</display-name>
    </web-app>

    Servlet3.0随J2EE6一起公布。web.xml配置文件里包括: 默认页配置、session超时配置和错误提示页配置。

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="3.0" 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" >
    
        <session-config>
            <session-timeout>30</session-timeout>
        </session-config>
    
        <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
    
        <error-page>
            <error-code>404</error-code>
            <location>/404.jsp</location>
        </error-page>
    
        <error-page>
            <error-code>500</error-code>
            <location>/500.jsp</location>
        </error-page>
    
    </web-app>

  • 相关阅读:
    Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Clien
    docker pull下载镜像报错Get https://registry-1.docker.io/v2/library/centos/manifests/latest:..... timeout
    Maven 插件之 docker-maven-plugin 的使用
    Windows10下的docker安装与入门 (一)使用docker toolbox安装docker
    解决IntelliJ IDEA 创建Maven项目速度慢问题
    svn检出maven项目的步骤
    学习RabbitMQ(三):AMQP事务机制
    TX-LCN分布式事务Demo实战
    SQLite -创建数据库
    备忘录模式
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/7163138.html
Copyright © 2011-2022 走看看