Murayama blog.

プログラミングと、その次の話

web.xmlについての疑問。


ひさしぶりにTomcatをいじっていて、気になることがあったのでメモしときます。


Tomcaは6.0を使っていました。
Tomcat6.x系はServlet2.5/JSP2.1を実装しています。
Apache Tomcat - Apache Tomcat



で、こっから疑問なんすけど、

<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.xmlの先頭の部分。


Tomcatの場合、タグの属性(versionなど)は無視しても構わないのでしょうか?
Tomcatに限らず、他のAPサーバでも無視してよい?)


試しにタグの属性を省いて

<web-app>


としても問題なく動きました。
そーゆーもんすかね。
#じゃー書かなくて良いじゃん。




なぜ、疑問を抱いたかというと、
タグではversion属性において、
Servletのバージョンを指定できると私は認識しています。
(この時点で認識間違ってる??)


さらに、さきほど図で示したように、
Tomcat5.x系はServlet2.4、
Tomcat6.x系はServlet2.5の実装だと認識してます。


Tomcat6.x系(Servlet2.5の実装)にデプロイしたアプリケーションの内部のweb.xmlに、

<web-app version="2.4">


と定義されていた場合、
A.エラーになる、
あるいは、
B.Tomcatのバージョンが6.x系であっても、Servlet2.4の実装として振る舞う、
のかと思っていました。


#なんか書きかけで中途ですが、時間がないので、今日はここまで。