如何使用servlets和jsp进行SPA?
我正在尝试使用servlet和jsp页面来完成单页应用程序。 目前我有第一页,这很容易做到:一个servlet转发到相应的jsp。
在导航到第二页时,实施应该如何看待? 我猜应该是ajax调用,servlet会填充必要的数据,但是如何显示第二页的jsp?
JSP是服务器端的UI技术。 Servlet监听特定的URL并重定向到JSP页面。 JSP被编译成一个类(实际上是另一个servlet),被调用(数据将被添加并且内联脚本将运行),并且输出(即HTML)被发送到客户端(浏览器)。 为了到达不同的页面,需要查询服务器(servlet)的另一个url,从而生成另一个html页面。
要创建SPA,您需要像JavaScript这样的客户端技术。 您查询单个html页面的服务器。 例如,由HTML和JavaScript构成的页面(甚至可以是单个JSP的输出,不会感到困惑)发送给客户端(浏览器)并运行JS。 这由一个像AngularJS,EmberJS或Backbone这样的框架来支持。 一旦页面设置,页面内的链接是锚 (http://example.com/#/ mySecondPage),那么单击它们将再次调用框架(阿贾克斯,查询新的数据服务器),但会留下在同一页上。 然后页面的一些内容可能被新内容替代。
如果它是一个真正的SPA,那么你只需要一个JSP并使用Ajax处理所有功能(在初始页面加载后)。
你看过使用像Angular这样的客户端框架来帮助你吗?
根据SPA的丰富程度,您可以使用相同的servlet或多个servlet来为每个页面提供服务。
除非你正在为一门课程或教程做这件事,并且对于如何实现它有一些限制,否则如果你将诸如Angular之类的东西与Spring之类的服务器端框架结合起来而不是编码servlet,那么你将很可能节省很多时间。 作为一个建议,看看Spring with Angular。
在SPA中,浏览器仅加载文档一次(或者几次,每个子应用一次),并且通常通过AJAX或Websockets完成与服务器的进一步通信。
我建议您将应用程序建模为瘦服务器体系结构,也就是使用浏览器(HTML,CSS,Javascript)运行的客户端应用程序,该应用程序使用服务器提供的Web服务API。
以下是值得了解的一些要点。
客户端:
服务器:
客户端和服务器框架有很多选择。
Javascript:AngularJS,EmberJS或Backbone,...
REST:Spring,Jersey,Restlet,..
JSON-RPC:https://en.wikipedia.org/wiki/JSON-RPC#Implementations
关于JSON-RPC,我个人推荐您使用Brutusin-RPC,这是我创建的具有独特功能的JEE微型框架,例如包括服务存储库浏览器,可以查看部署的服务集,其特性,文档以及测试它们。 这个功能测试模块(参见本演示)本身就是一个使用框架提供的一组内置描述符服务的SPA,因此它也可以为您的应用程序提供一些提示。
干杯,纳乔
链接地址: http://www.djcxy.com/p/47891.html上一篇: How to do a SPA using servlets and jsp?
下一篇: Json or html?