`

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>
分享到:
评论

相关推荐

    servlet-api.jar和javax.servlet.jar

    在实际开发中,为了兼容不同Servlet容器,开发者通常会在项目的`WEB-INF/lib`目录下放置servlet-api.jar,但在使用Maven或Gradle等构建工具时,通常会将Servlet API作为依赖来管理,而不是直接包含在项目中。...

    serlvet-api(1.5.0和1.7.0)

    这个压缩包包含了两个版本的Servlet API,分别是1.5.0和1.7.0,它们都是针对Java Development Kit (JDK)的不同版本设计的。在这里,我们将深入探讨Servlet API的主要概念、功能以及这两个版本之间的差异。 Servlet...

    jsp&servlet知识点总结

    #### 五、URL与URI的区别 - **URL**(Uniform Resource Locator):即统一资源定位符,用于标识互联网上资源的位置,由协议、服务器地址(含端口)和路径组成。例如,`http://www.example.com/path/to/resource`。 ...

    struts与servlet

    本文将深入探讨Struts与Servlet之间的区别及其应用场景。 ##### 1.1 Struts简介 Struts是一种基于MVC(Model-View-Controller)设计模式的开源框架,它简化了Java Web应用程序的开发过程。Struts通过提供一系列...

    servlet转发、包含详解(七)

    Servlet 对象是由 Servlet 容器创建,Servlet 对象的 Service() 方法是由 Servlet 容器调用,Servlet 之间是不允许相互调用的(Servlet API 2.1 以前的版本可以)。但是,我们 又需要通过多个 Servlet 组件协调完成...

    Tomcat 6,7,8三个版本

    Apache Tomcat,作为一款广泛应用的开源Java Servlet容器,其不同版本之间的差异和技术特性对于开发者来说至关重要。本篇文章将聚焦于Tomcat 6、7、8三个版本,探讨它们在功能、性能以及兼容性上的变化,帮助读者更...

    32.6、tomcat jdk各个版本区别1

    各个版本的Tomcat都有其特定的特性和改进,下面将详细介绍不同版本之间的主要区别。 **Apache Tomcat 9.x** Tomcat 9.x 是当前开发的重点,它基于Tomcat 8.0.x并实现了Servlet 4.0规范,同时支持JSP 2.4、EL 3.1和...

    JavaWeb视频笔记word版本

    8. **请求转发和重定向**:两种不同的URL导航方式,笔记会区分它们的区别并给出示例。 9. **文件上传和下载**:在Web应用中,处理用户上传的文件以及提供文件下载功能是常见的需求。笔记可能会讲解如何使用Servlet...

    apache-tomcat-9.0.27-apache-tomcat-10.0.27.zip

    这个压缩包“apache-tomcat-9.0.27-apache-tomcat-10.0.27.zip”包含了Apache Tomcat的两个不同版本,即9.0.27和10.0.27,这两个版本之间存在显著的区别和改进。 首先,Apache Tomcat 9.0.27是9.x系列的一个稳定...

    tomcat6,7,8,9(32/64/安装版)+jdk6,7,8,9(32/64/linux)

    Tomcat不同版本的区别 - **Tomcat 6**: 这个版本主要支持Servlet 2.5、JSP 2.1规范,是较早期的一个稳定版本。 - **Tomcat 7**: 支持Servlet 3.0规范,引入了许多新特性,如非阻塞I/O支持、过滤器链重组等。 - **...

    tomcat工具

    Tomcat作为一款流行的Java应用服务器,其不同版本之间的区别在于支持的规范版本、新增特性等方面。选择合适的版本对于项目开发至关重要。无论是Tomcat 7还是Tomcat 8,都能够满足大多数Web应用的需求。希望本文能够...

    tomcat 6.0 和 7.0

    Tomcat 6.0 和 7.0 是两个不同版本的Tomcat,它们在功能、性能和兼容性上都有所区别。本文将深入探讨这两个版本之间的差异,以及如何从6.0升级到7.0。 【主要知识点】: 1. **版本概述**: - **Tomcat 6.0**:...

    服务器原理和协议&Tomcat&Http协议[总结].pdf

    它们都支持不同级别的JavaEE规范,其中Tomcat是最轻量级的,主要支持Servlet和JSP,适合中小型项目。而WebLogic和WebSphere提供全面的JavaEE支持,适合大型企业应用。 【Tomcat的版本与JDK、Servlet/JSP的关系】 ...

    Hashtable和HashMap区别

    ### Hashtable与HashMap的区别 在Java编程语言中,`Hashtable`和`HashMap`是两种非常重要的数据结构,它们都属于`Map`接口...同时,MVC模式、SQL查询语言的不同以及JSP与Servlet的关系也是开发者应该了解的重要概念。

    javax和java的区别

    初学者可能会对这两者感到困惑,不清楚它们之间到底有何区别。本文将深入探讨`java`与`javax`的不同之处及其应用场景。 #### Java概述 `java`通常指的是Java标准版(Java Standard Edition, Java SE)中的核心类库...

    Windows 下整合 weblogic10 jsf1.2 hibernate3

    - **关于 Tomcat 6 与 Tomcat 7 的区别**:这可能与项目中使用的其他技术组件兼容性有关,需要注意不同版本之间的差异。 - **关于 JSF 1.2 的整合**:WebLogic 10 默认支持 JSF 1.2 的 myfaces 实现版本 1.1,需要...

    各种开发语言之间的区别

    ### 各种开发语言之间的区别 #### ASP (Active Server Pages) - **定义与特性**:ASP是一种服务器端脚本环境,用以创建动态网页。它最初由微软开发,旨在为Web开发者提供一种易于使用的工具来构建动态网站。与传统...

    Java面试题(非常全)

    Java面试题涵盖了许多核心概念,包括Servlet的生命周期、JSP与Servlet的区别、HTTP协议的理解、JavaBean的使用以及Web应用的配置元素等。以下是对这些知识点的详细解释: 1. **Servlet生命周期**: - 类的加载:当...

Global site tag (gtag.js) - Google Analytics