Angular JS 相对于 jsp 视图的优势

问题描述 投票:0回答:3

我想知道为什么人们使用 AngularJS 来检查现有的用户名或表单注册之类的事情,因为它可以简单地通过称为 jsp 的表示层结合 servlet 作为后端代码来完成。

例如,Angular 对 java servlet 进行 ajax 调用,其中 servlet 从数据库获取用户名并显示回 jsp 视图。所有这些都可以通过 jsp 和 servlet 来实现,而不是使用单独的自定义指令等再添加一层 Angular,这会增加更多代码。

我正在尝试找出 Angular 相对于 jsp 视图层的优势。像表单注册这样的事情可以用 jsp 而不是 Angular 来完成。

今天,我花了近 8 个小时编写了一个程序,使用 Angular 和 java servlet 作为后端来检查现有用户名。我不确定它是否是 Angular 或 jsp 中的错误,其中

request.getParameter("Username")
在 servlet 中返回 null。该参数是使用
$http
post ajax 调用从角度传递的。

最后我不得不使用一些输入流来读取从角度形式传递的值并返回响应。谁能想象这种问题?

最后,我的问题是 Angular 比 jsp 更好的原因是什么。有没有其他后端服务器比通常与 java 一起使用的 tomcat 更好地与 Angular 一起使用(可能是 NodeJS?)?

java angularjs jsp
3个回答
10
投票

Angular 和 JSP 之间的最大区别在于工作进行的位置 - 如果您想要一个具有大量用户交互和页面状态的丰富 Web 应用程序,Angular 可能是最佳选择。如果您想要具有简单、固定交互的页面并且大部分工作在服务器端执行,JSP 可能更适合您的需求。 与所有这些决定一样,您确实可以使用许多不同的技术来做到这一点,这只是哪种技术最适合您要完成的任务的问题。这并不是 Angular 是否更好的问题,它只是更适合某些应用程序。


1
投票

如果您正在制作单页 Web 应用程序,那么使用 Angular 或 Backbone 等前端 Web 框架的好处是显而易见的。它们处理客户端路由、模板、数据绑定、与后端的依赖注入 ajax 交互等。Vanilla jsp 根本没有构建 SPA 的工具。

Angular 确实想使用 RESTFUL api 之类的东西与后端对话。为了让您的生活更轻松,我建议使用 jersey 或restEasy 等 JAX-RS 实现来增强您的 servlet 应用程序。这些将为您提供一种更自然、更惯用的方式与 Angular 进行交流。

使用 Node 仍然需要更多工作(但是嘿,你已经习惯了,你正在使用 java)。但您会发现它比使用裸 servlet 更高效。


0
投票

JSP: 1 您拥有所有应用程序逻辑,并在页面生成期间生成页面所需的值。页面和数据一次性传输到用户浏览器。 2. 您只处理 Java 和 JSP,以及标签库来构建页面。

角度:

  1. 无论如何,您都需要服务器后端来拥有从数据库或其他地方获取数据的所有逻辑。
  2. 您需要将所有数据转换为 JSON 并使用密钥保护它;
  3. 您需要将浏览器中的所有数据取消 REST 才能在网页中使用;
  4. 您需要构建组件逻辑才能在用户浏览器中构建网页。它有点反映了构建在服务器端的业务逻辑。
  5. 如果您的页面比 Angular 应用程序更复杂,则需要进行多次(!!!)网络访问才能获取所有所需数据。
  6. 您有额外的部署步骤。事实上,您必须分别构建和部署后端和前端。
  7. 你必须使用第三方库并掌握它们,即 RxJs...
  8. 您的 Angular 版本、库不断变化。

总结一下: 我们正在将 JSP 应用程序迁移到 Angular,并且我们的团队中有原始开发人员。原始开发人员在每个 JSP 页面上花费了大约一周的时间。但是,使用 Angular 构建相同的页面需要 3-4 周的时间,每个页面具有相同的功能,但具有不同的外观。 Angular 中具有复杂数据和复杂功能的页面对于测试和调试来说是一场噩梦。 好的一点是,花在 Angular 应用程序上的所有时间都是按小时计费的。 ;)

© www.soinside.com 2019 - 2024. All rights reserved.