使用Spring MVC的单页面应用程序

时间:2018-02-20 12:53:36

标签: java spring web-applications

我正在尝试使用Spring MVC构建单页Web应用程序,依赖于本机Spring MVC控制器(带有模型和视图)和返回JSON信息的常见休息控制器。

我想用一个简单的例子简要解释一下我在做什么:

  1. 如果用户点击菜单内的主页按钮,则为Ajax 调用方法,它向我的服务器发送GET HTTP请求 使用Spring MVC控制器处理请求,返回 渲染主页的html文件,来自JSP文件 包含JSTL和Spring标签。
  2. 一旦Ajax方法收到主页的内容,它就会改变 我的html体内主要div的内容与这个新的。 最终用户拥有的是主页没有刷新 页面(对不起用于游戏的话)。
  3. 唯一的问题是,如果用户在浏览器中写入Ajax方法用于获取主页内容的GET HTTP请求的URL,那么现在发生的是他将在浏览器中加载主页内容(和当然我不希望他能够手动发送这个获取http请求)。

    我真的希望用这个例子解释自己,我想问你是否有任何建议让我朝这个方向解决这个问题!我知道使用像React或Angular这样的框架,事情会容易得多,但我还是要学习一个!这将是我将来为此webapp做的第一次升级。

    非常感谢你的帮助!

2 个答案:

答案 0 :(得分:1)

你必须使用@RestController而不是@Controller(或者你可以为类使用@Controller,为单一方法使用@ResponseBody)。因此你的返回方法应该是ResponseEntity。根据您的代码流程,您可以设置HttpStatus.OK或HttpStatus.INTERNAL_SERVER_ERROR。

答案 1 :(得分:1)

尝试验证从JavaScript到API的所有HTTP调用(例如使用JSON Web Token之类的令牌)。如果令牌不存在或不正确,则返回401 HTTP状态(未授权)。

有很多这样的好教程:http://www.baeldung.com/spring-security-oauth-jwt

您只需使用身份验证返回的令牌为您的ajax调用添加Http Header。