0
|
Hai Hoang · 技术社区 · 4 年前 |
![]() |
1
2
对于任何已经达到一定规模的web应用程序,这种迁移是唯一的出路,因为该应用程序太大,无法立即替换。因此,必须实现新旧页面的共存。 最简单的方法是,如果每个页面都是完全JSP或完全Angular的,即没有混合技术。正如您已经确定的那样,Angular布局需要足够接近JSP布局,以便用户将其作为一个应用程序来体验。但是,每当用户从JSP切换到Angular页面时,他/她在加载Angular应用程序和所有相关数据时都会遇到延迟。需要付出一些努力,但要足够快。 如果你需要共享状态(除了身份验证之外),那么你需要在JSP容器中实现一个API,这样Angular应用程序就可以检索并修改状态。你可能会发现只需要共享状态的一小部分。 对于身份验证,最简单的设置是Angular应用程序是否可以使用会话cookie访问所有API。那你什么都不需要做。不需要新的身份验证页面,也不需要传递JWT。 如果需要JWT,最好的解决方案是设置一个负责身份验证的专用IAM(身份和访问管理)。它将实现登录页面,并发出JWT。如果未经身份验证的用户请求JSP页面,他/她将被重定向到IAM,登录并被重定向回JSP应用程序。JSP应用程序验证登录。如果同一用户稍后打开Angular页面,并且Angular页面需要访问API,则用户将首先重定向到IAM。由于IAM提供SSO功能,它将检测有效的用户会话,并立即发出JWT(或身份验证码),而不显示登录页面。在这两种情况下,都使用OAUTH 2/OIDC流。这两种情况都得到了许多框架和库的很好支持。OIDC还包括同步注销的功能。 |
![]() |
2
1
这不是一个好主意,但遗留应用程序将面临提升和转变方法以适应新技术。我们在React中做了类似的练习。 JSP是服务器端处理的。你打算用Angular SSR吗?在Angular客户端处理的情况下,您可以使用会话/cookie来共享用户信息,如JWT,也可以处理状态。 我们不得不将唯一导致页面运行缓慢的问题迁移到React。我们使用Redux来表示状态。删除了整个JSP页面并开发了相应的React组件,因此api调用来自React。一些链接调用JSP页面,很少使用http会话传递数据。对于少数复杂的json数组(在提交到后端之前需要多次追加),数据存储在Redis中,由后端和任何JSP页面检索。 整个应用程序部署为单个Spring引导战争。 |
![]() |
Kiara · 根据条件角度显示多个模板 1 年前 |
![]() |
IonicMan · 剑道网格在宽度过大时不显示某些列 1 年前 |
![]() |
Ben5 · 服务器端总是接触FormControl 1 年前 |
|
allforthenoob · 我该怎么分类? 1 年前 |
![]() |
Hugh Jones · 如何创建适用于多个来源的自签名开发证书 1 年前 |
![]() |
jthorn · 角度对象未在HTML中显示 1 年前 |
![]() |
clem · 如何在Angular应用程序中突出显示页面的一部分? 1 年前 |
![]() |
Kael · 在html表格中显示关系api数据-角度 2 年前 |