JSP域名空间是什么、怎么选:按 Tomcat 版本逐项核对再买

倪叶明

作者

更新于

空间商标着「支持JSP」,这句话几乎等于没说。任何一台装了Tomcat的机器都支持JSP,问题是支持哪一版。Tomcat官方写明了,跑在Tomcat 9及更早版本上的应用,不改动搬到Tomcat 10上就是起不来。所以jsp域名空间这件事,成不成不在买,在你买之前有没有把版本号问成具体数字。

它指的是一个域名加一台能跑JSP的虚拟主机,两样东西凑成一个站。对做出海站的人来说,坑不在花钱,在买错。空间买回来,域名也解析好了,页面一打开报的是类找不到,钱花了,时间也搭进去了。要问的数字和要跑的验证动作按顺序列在下面,你先对着自己的项目看一遍再下单。

  • 它等于域名加JSP空间,不是一种单独的产品。
  • 判断标准是空间的Tomcat大版本、Servlet与JSP规范版本、Java版本这三项,缺一项都别下单。
  • Tomcat 10起包名从javax.*改成jakarta.*,老项目迁移几乎肯定要改代码。
  • Tomcat 9.0.x停止支持预计不早于2027年3月31日。

这篇从这词到底指什么讲到买之前逐项问清哪几个数字、买回来怎么验,版本和期限都取自Tomcat与ICANN的官方页面。

jsp域名空间到底是什么:一个域名加一台能跑JSP的空间

拆成两件东西看:域名归注册商,JSP能力归空间

域名这一半,是在2000多家ICANN认证注册商或者它们的经销商那里注册的。费用、转移、续费,都按你跟注册商签的协议走。经销商是跟注册商签约的公司,除了帮你注册域名,还能顺手提供虚拟主机,所以你在同一家把域名和空间一起买了,这事很常见。

但这两件事的责任主体不是一个。域名解析出问题、到期忘了续,找注册商;JSP跑不起来,找空间商。经销商不受ICANN认证,它只对自己的注册商负责。域名这块要展开,看域名。

域名的注册数据可以用ICANN的Lookup工具查,那个工具走的是RDAP协议,填进域名就能看到当前的注册信息。

为什么必须有一台容器

Tomcat是Servlet和JSP的容器。你的Web应用是一堆按标准布局摆好的目录和文件,可以解包散着放,也可以打成WAR包。官方写得很清楚,Web应用要被执行,必须部署在Servlet容器上,开发期间也一样。

这话落到实处就是:你在本地跑通,只证明本地那台容器认你的代码。线上那台容器的版本只要跟本地不同,同一份WAR就可能起不来。买空间之前先确认版本,比买回来再排查省事。

它属于虚拟主机还是VPS

Tomcat的Context元素代表一个Web应用,跑在某个特定的虚拟主机里。一台机器上可以挂多个站点,每个站点一个Context,context name 在同一个虚拟主机内必须唯一。你买的JSP空间,本质是别人在服务器上给你划出来的一块位置,加一个能跑你应用的容器。

这块位置是虚拟主机还是VPS,区别在资源隔离和你手上的控制权。差别写在虚拟主机和VPS的区别。

买之前先定版本:你的项目该配哪个 Tomcat

先看项目用的是 Java EE 还是 Jakarta EE

Tomcat 10及以后的版本实现的是Jakarta EE规范,Tomcat 9及更早实现的是Java EE规范。Jakarta EE是Java EE往后演进的那一支。这个分界不只是名字变了,包名也变了:从Tomcat 10起,所有已实现API的主包名从javax.*改成了jakarta.*。

Tomcat官方Which Version页面版本对照表,列出jsp域名空间要核对的规范与Java版本
官网说明截图:这张表就是买jsp域名空间前要对着核的三项数字。

官方对这件事的说法是,从Tomcat 9及更早迁移到Tomcat 10及以后,几乎肯定要改代码。所以你先翻自己的项目:代码里import的是javax.servlet还是jakarta.servlet,web.xml里声明的是哪个版本的schema,看一眼就知道自己站哪边。

三项数字要对上:Tomcat 大版本、Servlet 与 JSP 规范版本、最低 Java 版本

这三项是一组,不是三个独立选项。大版本决定了它实现哪一版规范,规范版本决定了你的代码能不能编译通过,最低Java版本决定了空间那台机器上的JDK够不够。三项里有一项对不上,剩下两项都对也没用。

具体数字在第四节那张表里,买之前拿自己的项目去对一遍。对不上就换版本,别指望空间商帮你改代码。

老项目别硬上新版

官方给了一个迁移的口子:为Tomcat 9及更早设计的Java EE应用,可以放进$CATALINA_BASE/webapps-javaee目录,Tomcat会自动把它转成Jakarta EE,再复制到webapps目录。老项目不想动代码,可以先走这条路。

但这是转换,不是保证。转完还是要自己跑一遍测试页,看依赖、看JDBC驱动、看web.xml有没有被拒。真正的判断标准只有一个:页面能不能正常返回。

官方口径:最新稳定版和 Java EE 的过渡时间

一边强烈建议尽可能使用最新稳定版,一边写明Tomcat 9是最后一个支持Java EE的主要版本,社区打算在主要版本通常支持的10年之外继续支持它。这两句不矛盾:新项目往新版本走,老项目有过渡时间,但过渡时间是有头的。

怎么买、怎么验:五步核对清单

下单前把前两步做完,下单后把后三步做完。顺序别换,先问版本再付钱。

  1. 问清三项数字。要对方给出具体版本号,具体到哪一位都写出来。「支持JSP」这四个字不算回答,任何一台装了Tomcat的机器都支持JSP,问题是支持哪一版。回查:客服只肯说「最新版」,或者干脆答不上来,直接换一家。
  2. 按标准目录布局打包。*.jsp、HTML、JS、CSS、图片放文档根目录;/WEB-INF/web.xml是部署描述符;/WEB-INF/classes/放class文件;/WEB-INF/lib/放JAR,别人写的类库和JDBC驱动都放这里。回查:web.xml的元素顺序必须按DTD排,filter、servlet、servlet-mapping顺序错了会被Tomcat直接拒掉。
  3. 用WAR或者目录部署。WAR丢进$CATALINA_BASE/webapps/,Tomcat启动时自动展开并执行。更新的时候,替换WAR文件、删掉Tomcat生成的那个展开目录,两件事都要做,再重启;只换文件改动不生效。几个应用共用的JDBC驱动可以放$CATALINA_HOME/lib;访问日志、数据源这类专有配置写在/META-INF/context.xml。
  4. 域名绑空间。域名注册完,把解析指到空间商给的地址。换解析的操作写在更换域名DNS解析,改完等生效再访问,别在没生效的时候怀疑空间。
  5. 上线前跑一次测试页。放一个测试WAR上去,重启,访问一次,看是不是正常返回JSP页面,而不是一段静态HTML或者报错页。这一步是唯一能证明真支持的动作,别省。回查:返回不对,按第五节五条逐条对。

如果你的空间给的是完整的Tomcat,还有一个口子:它自带一个Manager应用,默认部署在/manager路径上,可以在网页上部署和卸载应用,不用碰文件系统。虚拟主机一般不给这个入口,给不给要问清楚。

选主机商这件事,可以先看国内国外虚拟空间主机,把范围缩到几家,再拿上面五步去问。别在套餐名上纠结,套餐名不告诉你Tomcat版本。

数字和限制:Tomcat 版本、规范版本、Java 版本对照

这张表只放选空间要用的三项,加上每个版本现在处在什么状态。

Tomcat官方Context容器配置页说明,jsp域名空间配置应放META-INF/context.xml
官网说明截图:Context配置放/META-INF/context.xml,别直接写进server.xml。
Tomcat 大版本 最新发布版本 实现的 Servlet / JSP 规范 最低 Java 版本 状态
11.0.x 11.0.27 Servlet 6.1 / JSP 4.0 Java 17 及以后 当前开发重点
10.1.x 10.1.61 Servlet 6.0 / JSP 3.1 Java 11 及以后 在用
9.0.x 9.0.123 Servlet 4.0 / JSP 2.3 Java 8 及以后 停止支持不早于2027-03-31

这三行是现在还在支持的三种主要版本。11.0.x是当前开发重点,10.1.x是上一代还在用的,9.0.x还在维护但已经进了倒计时。买之前先确定自己落在哪一行,再去看价格。

9.0.x那一行的状态栏写着停止支持的时间,按2026年11月算还有四个多月。如果这个站你打算做三年以上,现在买9.0.x的空间,等于把一次迁移提前写进计划。不是不能买,是买之前要知道。

10.0.x已经到生命周期终点,最终版本10.0.27,EOL日期2022年10月31日。还在用10.0.x的,应升级到10.1.x或更高版本。

JDK这一侧也要问。JDK 25是现在最新的长期支持版本,按NFTC条款更新到2028年9月;后续更新换到OTN授权,超出有限免费范围的生产使用要付费。所以问空间商JDK版本的时候,顺带问一句是哪个发行版,收费口径不一样。

自己装Tomcat的,下载完要算一遍校验和跟官方的SHA-512比,OpenPGP签名对KEYS文件里的密钥。这一步跟买空间无关,但装错一个被改过的包,后面所有排查都白做。

标称支持 JSP 却跑不起来:五个常见误区和回查顺序

下面五条从第一条开始对,对到能跑为止。

误区一:以为 Tomcat 9 的应用能直接跑在 Tomcat 10 上

跑不了。跑在Tomcat 9及更早版本上的应用,不改动搬到Tomcat 10上就是起不来。回查:看报错里的包名,是javax.servlet找不到,还是jakarta.servlet找不到,一眼就知道踩的是哪边。

误区二:把 Context 直接写进 server.xml

官方明确不推荐这么干。原因是主conf/server.xml不重启Tomcat就没法重新加载,改起来更麻烦,而且默认的Context元素会覆盖你直接写在server.xml里的配置。回查:把配置挪到/META-INF/context.xml。

误区三:WAR 更新只换文件不删展开目录

改动不会生效。规则是替换WAR文件、删除展开目录两件都做,再重启。回查:进webapps看一眼同名目录还在不在,在就删掉重来。

误区四:web.xml 的元素顺序不符合 DTD

会被直接拒掉。Tomcat处理/WEB-INF/web.xml时强制执行DTD里定义的规则,filter、servlet、servlet-mapping这些元素必须按DTD的顺序排。回查:对着DTD把顺序捋一遍,别按自己觉得顺的顺序写。

误区五:新 Java 语言特性在 JSP 里不生效

默认的JSP编译器可能不立即支持新版本的语言特性。回查:把JSP编译器切到javac,切完再看这些特性能不能用。

不想折腾 JSP 空间的人,还有哪条路

先问自己一句:这个站真的需要Java后端吗。如果只是展示、写文章、放几个页面,静态站或者现成的建站程序就能覆盖,那就不用为了「支持JSP」这四个字多付核对成本。省下来的不是钱,是后面出问题的时间。

想先零成本试一下,看免费空间和域名申请。免费空间能不能跑JSP、跑哪一版,一样要问,别默认它跟付费的一样。

想按顺序从域名一路走到上线,看零基础从域名到上线。域名本身的国内外差别和成本,看国内外域名区别。

用 AI 帮哪几步、哪几个数字必须自己核

AI在这件事上能省的是整理和对照,不是替你做决定。它不知道你项目里import的是哪个包,也不知道空间商后台到底写着什么。

AI 能帮的三步

  1. 把第四节的版本对照表整理成一张「我的项目该选哪个Tomcat」的核对表,你输入自己项目的规范版本,让它按表里的行去匹配,别让它自由发挥。
  2. 按标准目录布局生成一份web.xml骨架,元素顺序按DTD排好,你拿去改。参数它不会替你填对,占位符要自己换。
  3. 把主机商页面上「支持JSP」那段描述贴给它,让它逐条对照Tomcat对规范版本和Java版本的要求,列出哪些点必须找客服确认。它出的是问题清单,不是结论。

三条能直接照抄的提示词

下面三条是本文给的示例,不是官方模板,按自己的项目改数字再用。

  • 「根据以下Tomcat版本对照表,帮我判断我的项目用的是Servlet 4.0和JSP 2.3,应该选哪个Tomcat大版本,需要哪个Java版本,只按表里的事实回答。」
  • 「按Tomcat标准目录布局,给我一份web.xml骨架,元素顺序按DTD定义排列,只列filter、servlet、servlet-mapping三类,不要编造参数。」
  • 「我准备买一个标称支持JSP的虚拟主机,请把下面这段主机商描述逐条对照Tomcat官方对Servlet/JSP规范版本和Java版本的要求,列出哪些点必须向客服确认,不要下排名结论。」

必须你自己动手的两件事

版本号要你自己在后台或者工单里问到手,AI没法替你登录进去看。测试WAR也要你自己放进$CATALINA_BASE/webapps/,重启,再访问一次,看返回的是不是JSP页面。

看完返回结果再决定去留:能正常跑就留,报错或者只返回静态页就按第五节逐条对,对完还不通就换。这一步AI替不了,它看不到你后台的那个结果。

从空服务器到上线这一整套,猎者出海的AI Agent按十个阶段一段一段过,每段有一道关,站照着你的方向从零长出来;空间商给的那几个版本号以空间商后台页面显示为准。

常见问题

jsp域名空间是官方说法吗

不是。Tomcat那边只讲Servlet和JSP容器、规范版本,ICANN那边只讲域名注册,两边都没有这个词。它只是买空间时的一个口头叫法,值钱的信息在后面那几个版本号上。

空间商标了支持 JSP,我还需要问什么

要它给出具体版本号,三个都得有数字,不要接受「支持JSP」这种描述。答不上具体值的,说明它自己也不清楚装的是哪一版。

Tomcat 9 的项目能直接放到 Tomcat 10 的空间上吗

不能。主包名从javax.*改成了jakarta.*,应用不改动在Tomcat 10上无法运行。要么继续用9.x的空间,要么走webapps-javaee转换,转完自己跑一遍测试页。

Tomcat 9 还能用多久

停止支持的时间官方已经公布,从现在算还有四个多月。做长期项目要把这个时间算进迁移计划,别等停了再找空间。

JSP 空间要备案吗

备案看的是空间和域名放在哪、由谁提供服务,跟用不用JSP没关系。

我该选 Tomcat 11 还是 9

看代码里的包名。新项目从11.0.x起步,规范新、支持周期长;手上是老代码又不想改,就找9.0.x的空间,同时接受它的支持期限。10.0.x不在选项里,已经到生命周期终点。

买JSP空间这件事,说到底就两个动作:下单前把版本号问成具体数字,拿到手把测试WAR跑一遍。两个动作做完,剩下的才是写代码的事。站上线以后,猎者出海的AI Agent每周拉一次数据,给你一张单子,写清改哪几篇、改什么、先改哪篇,那时候要盯的就不是Tomcat版本了。

发表评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注