3

Does the "web-app_*.dtd" reference web.xml determine the Servlet and JSP version used in the web application ?

Somehow I have been under that impression, but it seems like I am wrong. I have an application where the web.xml specifies

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

I was thinking that it should be using Servlet version 2.3. However, when I put the following code in my JSP, I get a totally different version.

<div>
Server info: <%= application.getServerInfo() %><br>  
Servlet version: <%= application.getMajorVersion() %>.<%= application.getMinorVersion() %>  
JSP version: <%= JspFactory.getDefaultFactory().getEngineInfo().getSpecificationVersion() %><br> 
</div>

Output:

Server info: Apache Tomcat/7.0.21
Servlet version: 3.0
JSP version: 2.1

I will appreciate help with a few related questions:.

  • Does the dtd version have any bearing on the Servlet and JSP version used in the application ?
  • Is my application using Servlet version 3.0 because that is the default version being used by Apache Tomcat 7 ?
  • Is there any way to make Tomcat 7, use an older Servlet JSP version ?
  • One of the comments (by Bauke Scholtz) on this page, seems to suggest that every Servlet version is tied to a JSP version. Is this always true ?
4

2 に答える 2

1

dtdバージョンは、アプリケーションで使用されるサーブレットおよびJSPバージョンと関係がありますか?

はい、それはアプリケーションが開発されたバージョンをサーバーに通知するものです。

私のアプリケーションはサーブレットバージョン3.0を使用していますか?それはApache Tomcat 7で使用されているデフォルトバージョンだからですか?

いいえ、サーバーが3.0をサポートできるからといって、アプリケーションが3.0を使用しているわけではありません。アプリケーションはサーブレット2.5であるため、サーブレット3.0の機能が無効になります。

Tomcat 7を古いサーブレットJSPバージョンを使用する方法はありますか?

はい。最初の質問への答え、あなたのweb.xml

このページのコメントの1つ(Bauke Scholtzによる)は、すべてのサーブレットバージョンがJSPバージョンに関連付けられていることを示唆しているようです。これは常に本当ですか?

ほとんどはい。密結合ではありません。ただし、すべてのサーバーはJavaEE標準に準拠しており、各JavaEE標準はいくつかの仕様とそのバージョンを確認する必要があります。たとえば、JavaEE5にはサーブレット2.5とJSP2.1が必要であり、JavaEE6にはサーブレット3.0とJSP2.2が必要です。

于 2012-04-12T09:51:59.670 に答える
0

dtdバージョンは、アプリケーションで使用されるサーブレットおよびJSPバージョンと関係がありますか?

はい。

私のアプリケーションはサーブレットバージョン3.0を使用していますか?それはApache Tomcat 7で使用されているデフォルトバージョンだからですか?

はい。

Tomcat 7を古いサーブレットJSPバージョンを使用する方法はありますか?

いいえ、Tomcatの以前のバージョンを入手する必要があります。

このページのコメントの1つ(Bauke Scholtzによる)は、すべてのサーブレットバージョンがJSPバージョンに関連付けられていることを示唆しているようです。これは常に本当ですか?

はい。

于 2012-04-12T09:50:00.900 に答える