jackeylu / leave-jsp

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Leave JSP: 一套求稳的前后端分离改造方案

2022年了, 还在维护JSP吗?

20年历史,百万行代码,新需求不断,老业务没人讲得清, 你要重写吗?

JSP太大,exceeding the 65535 bytes limit 子页面套子页面,无限套娃 JSP中一堆Java代码 全局变量满天飞 form表单,window.open(),opener.window,ajax……

改变从这里开始: 一步步从JSP演进到现代前端开发。

项目说明

对一个使用JSP技术的遗留应用做前后端分离的改造。

模拟一个业务场景, 体现出在使用JSP技术时的常见问题, 并给出解决方案和改造的步骤。

现状

一个遗留项目,使用了JSP技术。

目标

前后端分离

为什么要改

前后端关注点不同,有独立的变化方向变更速度

问题与方案

  1. 前端JSP部分问题与方案
    1. 页面庞大
      1. 行数多
      2. include 方式嵌入多个子页面
    2. 混杂 java 变量
    3. 模块不清晰
    4. 混杂业务逻辑与展示逻辑
    5. windows
  2. 后端部分
    1. 页面展示元素与数据一同返回
    2. 接口部分
      1. 部分校验逻辑散落在Javascript函数中,而后端API并无相关校验。
      2. 部分数据请求之前有条件限制,而这些条件包含的业务只体现在了前端。
      3. 多个API修改同一个聚合的不同部分,无法保证聚合内部的业务一致性。
  3. 维护团队没有完整的业务知识
  4. 没有测试保护

改造实施路线图

  1. 前端改造
    1. 大页面拆分,模块化
    2. Javascript 部分去JAVA
    3. 接耦页面展示逻辑与数据,引入前端框架VueJs
    4. 请求异步化,完成前后端分离
    5. 前端工程化改造
  2. 服务端接口治理
  3. 业务知识梳理留存
  4. 测试保护

本地演示步骤

About


Languages

Language:JavaScript 71.9%Language:Java 25.5%Language:CSS 1.2%Language:HTML 0.8%Language:Vue 0.6%