Ajax 带AngularJS的Web开发人员:我应该使用哪种服务器软件?

Ajax 带AngularJS的Web开发人员:我应该使用哪种服务器软件?,ajax,angularjs,jsp,Ajax,Angularjs,Jsp,我对这个概念有一个疑问: 我离开web开发实践约3-4年了,现在,当我试图回到它并采用最后的技术时,我感到非常困惑 在过去,我使用JSP/PHP/Javaservlet或其他一些技术在服务器中处理页面,然后将其发送到客户端。例如(JSP): 如果我理解正确的话,现在,AngularJS应该在客户机上执行循环,而不是在服务器上执行Java,并且数据应该由客户机以JSON格式实现,使用对服务器的AJAX调用 我的理解正确吗 如果是这样的话——我认为我所需要的只是一个能够让我定义AJAX功能的服

我对这个概念有一个疑问:

我离开web开发实践约3-4年了,现在,当我试图回到它并采用最后的技术时,我感到非常困惑

在过去,我使用JSP/PHP/Javaservlet或其他一些技术在服务器中处理页面,然后将其发送到客户端。例如(JSP):



如果我理解正确的话,现在,AngularJS应该在客户机上执行循环,而不是在服务器上执行Java,并且数据应该由客户机以JSON格式实现,使用对服务器的AJAX调用

  • 我的理解正确吗
  • 如果是这样的话——我认为我所需要的只是一个能够让我定义AJAX功能的服务器——我不再需要将服务器代码与客户机代码混合使用(也就是说,我不需要JSP/PHP/Java servlet/等等)。那么,是否有新的简单服务器技术被指定来支持这些AJAX调用呢?在Java和Python中,哪些服务器技术被推荐并常用于这些目标

  • 是的,你的理解是正确的。AngularJS是一种选择,还有其他JavaScript框架以类似的方式工作——AngularJS似乎是目前最流行的

    至于服务器,几乎可以使用任何技术,标准是通过RESTfulWeb服务提供JSON数据

    如果您还想在服务器上使用JavaScript,那么带有Express的Node.js非常流行(并且易于使用)

    如果您想使用Java,可以使用JBoss或Jetty之类的工具作为服务器,然后使用RESTful服务之类的工具公开您的服务。添加到现有应用程序相当容易


    我建议您从开始,它将非常详细地介绍其中的许多概念。这是一个很好的起点。

    正如所建议的,后端服务器将向客户端发送JSON。然后,客户端可以使用前端框架(如AngularJS)在页面上动态呈现HTML

    后端语言是什么并不重要。但是,为了获得最佳性能,有些人建议您在将HTML发送到浏览器之前,在呈现HTML的位置添加一个额外的标签。他们说,这将带来更好的性能和搜索引擎优化。Node.js可以很好地用作渲染层,因此您最好简化技术堆栈,并在整个后端使用Node.js


    此外,一些前端框架比其他框架更容易实现服务器端渲染。这是最近流行的原因之一。使用它更容易实现服务器端渲染。

    Scriptlet在JSP中是一个很大的代码气味,所以这是一个非常糟糕的示例。;)对于SO来说,这个问题也可能有点离题,可能更适合于软件推荐。无论如何,如果您需要大量的后端业务逻辑,Java+Spring或Play框架都是流行的选择。如果你只是想要一个轻量级的(小业务逻辑)后端并廉价地服务于大量的呼叫,那么MEAN(MongoDB、Express、AngularJS和Node.js)是当今一个简单且大肆宣传的技术堆栈。当然还有很多其他的选择,但至少你可以在网上找到大量的帮助。谢谢你的回答!顺便说一句,这不仅仅是关于软件推荐——这是第一个关于概念的问题,因为我不确定它今天是如何工作的。你是对的,这也是关于推荐的,因为我实际上不知道今天在这些现代实践中常用的任何服务器工具。我不确定我是否理解了你解释的附加层理论。你能告诉我中间层的角色是什么吗?“在服务器和浏览器之间”到底是什么意思?@SomeThingSomethingSomethingSomethingSomethingSomethingSomethingSomethingSomethingSomethingSomethingSomethingBrowser向服务器发出请求,服务器将JSON负载发送到渲染层。呈现层创建HTML,将其发送回服务器,服务器使用呈现的HTML而不是JSON负载进行响应。我也不完全理解架构,但这是基本的想法。所以你实际上说,页面的创建回到了服务器的角色,就像在旧的JSP时代一样,在我们可以嵌入AngularJS代码并对其进行评估之前client@SomethingSomething是的,没错。但是在AngularJS的例子中,你不能仅仅抛出任何HTML来期望它工作。AngularJS本身必须生成HTML,才能知道如何继续使用它。这就是为什么如果要在服务器上渲染AngularJS,后端可能需要Node.js和PhantomJS。不过我认为React没有这个问题。
    <% for (String s : names) { %>
        <% =s %>
        </br>
    <% } %>