本节摘要:替代 JSP 的路线没有唯一答案:页面逻辑重、要搜索优化的场景继续用服务端模板(含 JSP 本身或现代引擎);交互密集的场景交给前端框架接管;多数真实站点最终落点是两者并存的混合架构。当决定迁移时,风险最低的路线是绞杀者模式——新功能建在新栈、旧页面按流量逐步收割、两栈过渡期长期并存。本站交付选型对照表与这张路线图。
先定场景账。把青梧书肆的页面按特征分堆,每堆的合适技术不同:
| 页面特征 | 合适的技术 | 青梧书肆的对应 |
|---|---|---|
| 逻辑重、要搜索收录、交互简单 | 服务端模板(现代引擎为主) | 图书详情、列表、帮助页 |
| 交互密集、状态复杂、实时性强 | 前端框架接管,后端只出接口 | 后台管理、实时库存看板 |
| 低频内部工具、生命周期短 | 现状保留,最小改动 | 内部盘点小工具 |
看出结构了吗:多数站点根本不该"整体替代",而该按场景分流。真正的决策不是"JSP 还是某某",而是"哪些页面值得动、哪些页面不值得动"。值得动的走渐进路线,不值得动的保持服役——把预算花在刀刃上,这比任何技术信仰都重要。
定了要动,接下来是路线之争。直觉路线是"大爆炸重写":立项、冻结旧站、集中开发、择日切换。它的失败率高得惊人,原因不在技术,在时间——重写的一年里旧站还在长出新需求,新站上线之日就是过期之时,永远追不上漂移的靶子。评审会上的结论很干脆:大爆炸重写否决,走绞杀者路线。
绞杀者模式的名字来自一种真实的植物:藤蔓缠绕老树缓慢生长,多年后老树枯萎、藤蔓自成主干。迁移的对应动作分四步,画成路线图一目了然。

四步里最值钱的是第一步。绞杀者路线的地基是业务层唯一:接口出口把第 4 章攒下的服务层能力暴露出来,旧 JSP 控制器与任何新栈视图调用的是同一份业务逻辑。没有这一步,迁移会退化成"把业务逻辑再抄一遍"——两份逻辑从此各自漂移,那不是迁移,是裂殖。所幸你已经在第 4 章把分层立好了,这一步只剩"包出口"的活儿。
第三步的分流动作值得交代细节:入口层按路径把流量导向新页或旧页,每条路径一个开关。收割顺序按访问热度从低到高——先拿低风险页面练手,等团队与流程磨合顺了,再动首页与结算这些主动脉。
背景:评审会定了绞杀者路线,第一个模块选谁?候选有三个:首页(流量最大)、会员中心(交互密集、相对独立)、图书列表(逻辑重但改动频繁)。
操作:按三个判据打分——模块独立性(与旧站耦合越少越适合先行)、交互特征(新栈优势越大越适合先行)、失败影响(初期必然磕绊,选影响小的)。会员中心三项全占:会话体系早已标准化、页面交互密集是新栈主场、即便出问题也不挡交易主流程。实施按四步走:服务层补齐会员接口出口,新栈重写会员中心七个页面,入口层挂路径分流,观察两周后摘除旧页。
结果:会员中心顺利切换,全程用户无感;实测工作量比预估少两成——第 4 章打好的分层地基让"接口出口"几乎零成本。
解读:这个先例的价值在示范了估算是可以校准的:一个模块跑完后,每页平均工时、回归测试成本、常见坑清单都有了实测数字,后续收割排期不再拍脑袋。绞杀者路线的另一层含义由此显形——它不只是技术路线,还是组织学习路线,让团队在低风险区域完成新栈的技能积累。
变式:如果某个模块永远迁移不完(通常是因为它和旧站耦合太深),果断评估"留还是废"。绞杀者路线不承诺百分之百收割——最后百分之五往往要付出百分之五十的成本,明确"不迁"也是路线图的一部分。
⚠️ 常见坑:迁移期间为了图快,在新栈里直接复制一份旧业务逻辑"先跑起来再说"。这份副本就是未来的漂移源——两处逻辑各自演化,一年后没人说得清哪个是对的。宁可出口接口多等一周,不留副本一分钟。
绞杀者路线里"每页一个开关"听起来玄,实现其实朴素:入口层按路径模式把请求导向新栈或旧栈,开关就是那份路径映射表。实现要点有三。其一,映射表本身要版本化进代码库——它是迁移期最重要的状态,散落在环境配置里迟早丢。其二,新路径与旧路径的映射要成对登记(旧地址导向新页面时保留旧地址的可回滚指向),回滚动作因此变成"把映射改回去",分钟级完成。其三,观察指标挂在映射层:每个路径的导向版本、切换时间、切换后的错误率,天然构成迁移台账——9.3 节五年路线的进度百分比,就从这张表上读。另外提示一个过渡期特有的坑:两栈并存的窗口里,用户可能在旧页面收藏了带参数的地址,切换后参数名若在重写时变了,收藏就成了坏链。参数名兼容清单要加进每页的收割检查项。
两栈并存的窗口期少则两季、多则数年,期间有几条双栈纪律必须立住,否则并存的复杂度会反噬迁移本身。其一,样式与交互规范全局统一:新旧页面用同一份交互规范与视觉规范,用户感知不到"这是一次迁移",否则每个收割页面都是一次用户体验断裂。其二,会话与登录状态全局共享:新栈页面必须复用旧栈的会话体系——会员中心迁移时这条没处理好,会出现"首页登录了、会员中心还要再登录"的笑话;好在第 4 章把会员服务做成了唯一业务层,会话校验挂在服务出口上,两栈自然共享。其三,发布节奏对齐:新旧两条部署流水线的发布窗口要协调,避免"新页面今天上线、它依赖的接口昨天就变了"的错位。三条纪律的共同思想是:迁移期是"一个站点、两套实现",站点层面的一切必须唯一,实现层面才允许并行。
路线有了雏形,评审还差最后一环:把历史的、生态的、成本的三副眼镜架起来,给站点定一条五年路线。下一站收尾。