`
colcool
  • 浏览: 66534 次
  • 性别: Icon_minigender_1
  • 来自: 鞍山
社区版块
存档分类
最新评论

web.xml 不同版本区别

阅读更多
问题就出在建Web Project的时候web.xml声明上。
web.xml声明部分一般分为如下版本的xsd,
web-app_2_2.xsd
web-app_2_3.xsd
web-app_2_4.xsd
web-app_2_5.xsd

更详细的列出各版本web.xml声明部分吧,如下:
web-app_2_2.xsd
Java代码 

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/dtd/web-app_2_2.dtd">
 
web-app_2_3.xsd
Java代码 

<?xml version="1.0" encoding="UTF-8"?> 
<!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_2_4.xsd
Java代码 

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

web-app_2_5.xsd
Java代码 

  
<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 

如果想使用EL表达式,确定web.xml里的xsd版本之后一定要在JSP的声明(<%@page %>)部分加一行,如下:
<%@ page isELIgnored="false" %> 
 
这样设为false才能解析EL表达式。
经过各版本的test之后....
注意!! 其中servlets 2.4(我没记错的话JSP 2.0出来之后的第一个版本),这个版本的isELIgnored默认设置为false。所以使用web.xml里用web-app_2_4.xsd声明的时候在JSP页面不用特意声明。

官方Documention中写道
The isELIgnored Attribute
• Format
– <%@ page isELIgnored="false" %>
– <%@ page isELIgnored="true" %>
Purpose
– To control whether the JSP 2.0 Expression Language
(EL) is ignored (true) or evaluated normally (false).
• Notes
– If your web.xml specifies servlets 2.3 (corresponding to
JSP 1.2) or earlier, the default is true
• But it is still legal to change the default—you are permitted
to use this attribute in a JSP-2.0-compliant server
regardless of the web.xml version.
– If your web.xml specifies servlets 2.4 (corresponding to
JSP 2.0) or earlier, the default is false

 

不同版本引入新的标签库的
< web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 

  < taglib> 

  < taglib-uri>http://jsptags.com/tags/navigation/pager< /taglib-uri> 

  < taglib-location>/WEB-INF/pager-taglib.tld< /taglib-location> 

  < /taglib> 

  < /web-app>
 

  按上面进行配置时MyEclipse一直在报错,应该把< taglib> 放到 < jsp-config>中:

  
< ?xml version="1.0" encoding="UTF-8"?> 

  < web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 

  < jsp-config> 

  < taglib> 

  < taglib-uri>http://jsptags.com/tags/navigation/pager< /taglib-uri> 

  < taglib-location>/WEB-INF/pager-taglib.tld< /taglib-location> 

  < /taglib> 

  < /jsp-config> 

  < /web-app>
 
 

sun从来不把servlet各个版本的web.xml的规格公布一下,即使上网查找,也很难发现。倒是跟随支援的servlet容器会发布一些范例程序,好运的话,里面将会有最新版本的web.xml写法,比如说,tomcat6正式版里面有了servlet 2.5的写法,如下:

 

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

 

 

 

别以为看到这里就结束了,很可惜地告诉你,这段代码是错误的。不信你尝试打开一下这个链接http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd,你会发现是no page found。

那为什么tomcat6的范例程序能够工作呢,那是因为在tomcat6的lib里面,已经存在这个文件,所以也不需要从网络上面抓取。其实你按照这个web.xml写了servlet 2.5的程序,在tomcat6里面也是可以运行的。

可是当我使用eclipse+xmlbuddy的时候,问题就出来了,因为web-app_2_5.xsd一直不能下载,xmlbuddy一直报错,并且没有语法提示功能。通过搜索,我发现了web-app_2_5.xsd的真实地址其实是http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd,而它的namespace是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">

 

 

留意一下不同的部分,其实是因为sun把j2ee改名为javaee。

分享到:
评论

相关推荐

    在web.xml中引入其他xml配置文件的步骤

    ### 在web.xml中引入其他XML配置文件的步骤 在Java Web开发中,`web.xml`作为Web应用程序的核心配置文件,负责定义应用级别的配置信息。为了提高代码的可维护性和复用性,有时需要将一部分配置内容提取到独立的XML...

    web.xml配置详解, web.xml web.xml 配置实例

    在 web.xml 文件中,第一个元素是 XML 头,用于声明 XML 版本和字符编码。紧接着是 DOCTYPE 声明,用于指定 Servlet 规范的版本和文档类型定义(DTD)。最后是 web-app 元素,作为根元素,包含了所有其他元素。 ...

    Tomcat中用web.xml控制Web应用详解

    Tomcat 中用 web.xml 控制 Web 应用详解 Tomcat 中 web.xml 文件是 Web 应用的核心配置文件,负责管理 Web 应用的生命周期、Servlet 的加载顺序、Filter 的配置等。下面对 web.xml 文件中的重要元素进行详细解释。 ...

    web.xml配置详解

    在 web.xml 文件中,第一个元素是 XML 头,指定了 XML 的版本号和编码方式。接着是 DOCTYPE 声明,用于指定文件类型定义(DTD),从而检查 XML 文档的有效性。 DOCTYPE 声明中包含了几个特性,告诉我们关于 DTD 的...

    详解Spring mvc的web.xml配置说明

    在构建基于Spring MVC的Web应用程序时,`web.xml`配置文件扮演着至关重要的角色。它定义了应用程序的行为,包括启动时的初始化、请求处理以及中间件的设置。下面我们将详细探讨`web.xml`中涉及Spring MVC的主要配置...

    Maven工程的web.xml模板

    由于经常使用Maven创建web工程所以需要使用web.xml默认模板

    log4j与web.xml的配置

    Web.xml是Servlet容器(如Tomcat)的部署描述符,用于配置Web应用程序的各种设置,包括日志配置。本文将详细讲解如何将Log4j整合到Web应用并通过web.xml进行配置,以实现日志信息的输出和管理。 1. **Log4j介绍** ...

    为tomcat服务器配置https,tomcat需要设置的server.xml与web.xml配置

    在Tomcat的`conf`目录下,有两个主要的XML配置文件:`server.xml`和`web.xml`。`server.xml`是Tomcat的主要配置文件,而`web.xml`则定义了应用程序的行为。 在`server.xml`中,我们需要配置`&lt;Connector&gt;`元素来启用...

    javaweb项目中web.xml的作用

    web.xml文件中定义的标签元素不是定死的,模式文件也是可以改变的,随着web.xml模式文件的版本升级,里面定义的功能会越来越复杂,标签元素的种类肯定也会越来越多。 下面我们介绍一下web.xml文件中常用的标签以及...

    jboss-web.xml jndi.properties oracle-ds.xml

    在本案例中,"jboss-web.xml"、"jndi.properties"和"oracle-ds.xml"是针对EJB+JPA在JBoss应用服务器中的配置文件,它们各自承担着不同的职责。 首先,"jboss-web.xml"是JBoss特定的Web应用程序部署描述符,它是...

    web.xml各种配置

    不同版本的servlet规范定义了不同的web.xml结构。以Servlet 2.3和Servlet 2.5为例,web.xml的根元素&lt;web-app&gt;后面的DOCTYPE声明和根元素标签的属性不同。 #### Servlet 2.3版本 在Servlet 2.3版本中,web.xml文件...

    web.xml 中的listener、 filter、servlet 加载顺序及其详解.doc

    Web.xml 中的 listener、filter、servlet 加载顺序及其详解 在 Web 应用程序中,web.xml 文件扮演着非常重要的角色,它定义了 Web 应用的结构和配置。其中,listener、filter、servlet 是三个非常重要的概念,它们...

    struts.xml和applicationContext.xml、web.xml的配置

    在Java Web开发中,`struts.xml`, `applicationContext.xml` 和 `web.xml` 是三个至关重要的配置文件,它们各自负责不同的职责,并协同工作来构建一个完整的应用框架。以下是关于这三个配置文件的详细说明。 首先,...

    演示web.xml文件中error-page标签的使用.zip

    通过"演示web.xml文件中error-page标签的使用.zip"的测试,你可以实际操作并观察不同错误代码或异常类型触发自定义错误页面的效果,从而更好地理解`error-page`标签的用法。请解压文件,查看其中的示例配置,并在...

    web.xml配置详解.pdf

    web.xml 各属性作用描述 Web.xml 常用元素 &lt;web‐app&gt; ‐name&gt;‐name&gt;定义了WEB 应用的名字 &lt;description&gt;&lt;/description&gt; 声明WEB 应用的描述信息

    在web.xml中设置错误处理页面.docx

    在 Web.xml 中设置错误处理页面 在 JavaWeb 应用程序中,错误处理页面是一个非常重要的组件,它可以帮助开发者处理和显示异常信息,从而提供更好的用户体验。本文将讲述如何在 web.xml 文件中使用 `&lt;error-page&gt;` ...

    web.xml加载顺序与web.xml常用节点解析

    `web.xml`是Java Web应用程序的核心配置文件,用于定义应用服务器如何初始化和管理Web应用程序。它遵循Java Servlet规范中的标准,为开发者提供了一种结构化的方式来配置Servlet、过滤器、监听器和其他组件。理解`...

    在web.xml中配置action或.do

    ### 在web.xml中配置action或.do的理解与实践 #### 一、引言 在Web开发领域,特别是基于Java的Web应用程序开发中,`web.xml`文件扮演着至关重要的角色。它不仅定义了Web应用的基本配置,还管理着诸如Servlet、过滤...

    项目配置文件( spring-mvc.xml spring-mybatis.xml web.xml log4j.properties)

    这里提到的四个关键配置文件——`spring-mvc.xml`、`spring-mybatis.xml`、`web.xml`以及`log4j.properties`,对于一个基于Java的Web应用来说至关重要,特别是使用Spring MVC和MyBatis框架的时候。接下来,我们将...

    servlet的写登陆管理系统用到的web.xmlweb.xml

    servlet的写登陆管理系统用到的web.xml

Global site tag (gtag.js) - Google Analytics