指定Java Web应用程序的Servlet和JSP版本

时间:2012-04-12 09:33:57

标签: jsp web-applications servlets

" web-app _ * .dtd" reference web.xml确定Web应用程序中使用的Servlet和JSP版本?

不知何故,我一直受到这种印象,但似乎我错了。我有一个web.xml指定的应用程序

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

我在想它应该使用Servlet版本2.3。但是,当我在JSP中添加以下代码时,我会得到一个完全不同的版本。

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

输出:

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

我将非常感谢您提供一些相关问题:。

  • dtd版本是否与应用程序中使用的Servlet和JSP版本有任何关系?
  • 我的应用程序是否使用Servlet 3.0版,因为这是Apache Tomcat 7使用的默认版本?
  • 有没有办法制作Tomcat 7,使用较旧的Servlet JSP版本?
  • 其中一条评论(由Bauke Scholtz撰写)this page,似乎暗示每个Servlet版本都与JSP版本相关联。这总是如此吗?

2 个答案:

答案 0 :(得分:1)

dtd版本是否与应用程序中使用的Servlet和JSP版本有任何关系?

是的,这是告诉服务器开发应用程序版本的那个。

我的应用程序是否使用Servlet 3.0版,因为这是Apache Tomcat 7使用的默认版本?

不,服务器可以支持3.0并不意味着您的应用程序使用3.0因为您的应用程序是servlet 2.5,所以servlet 3.0功能将为您提供。

有没有办法制作Tomcat 7,使用较旧的Servlet JSP版本?

是。第一个问题的答案,你的web.xml

此页面上的一条评论(Bauke Scholtz)似乎暗示每个Servlet版本都与JSP版本相关联。这总是如此吗?

大多是的。它没有紧密耦合。但是每个服务器都符合JavaEE标准,并且每个JavaEE标准都应该确认某些规范及其版本。对于Ex,JavaEE 5需要Servlet 2.5和JSP 2.1,JavaEE 6需要Servlet 3.0和JSP2.2。

答案 1 :(得分:0)

  

dtd版本是否与Servlet和JSP版本有任何关系   在申请中使用?

  

我的应用程序是否使用Servlet 3.0版,因为它是   Apache Tomcat 7使用的默认版本?

  

有没有办法制作Tomcat 7,使用较旧的Servlet JSP版本?

不,你需要获得早期版本的Tomcat。

  

此页面上的一条评论(由Bauke Scholtz撰写)似乎表明了这一点   每个Servlet版本都与JSP版本相关联。总是如此   是吗?