@ResponseBody注解和response.getWriter().write()

前言:

刚开始学习SpringMVC的时候,对于一些使用到的注解我们常常会有很多疑惑,今天来讲一下@ResponseBody这个注解

一、@ResponseBody的作用:

@responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象,通常我们使用用来返回JSON数据或者是XML数据,在使用此注解之后不会再走试图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据。

来看具体的使用吧:
后台controller:

@ResponseBody
    @RequestMapping(value = "/test")
    public User sayHello(String username, String password, User user){
        System.out.println("username"+username+" and password:"+password);
        System.out.println("username:"+user.getUsername()+" | password:"+user.getPassword());
        return user;
    }

前端页面:我这里使用的是ajax提交,指定dataType为json,接收到后台传来的数据会转为json对象

<div class="container">
    <form class="form-signin">
        <h2 class="form-signin-heading">Please sign in</h2>
        <label for="inputEmail" class="sr-only">Username</label>
        <input type="text" id="username" name="username" class="form-control" placeholder="Username" required autofocus>
        <br>
        <label for="inputPassword" class="sr-only">Password</label>
        <input type="text" id="password" name="password" class="form-control" placeholder="Password" required>
        <br>
    </form>
    <button class="btn btn-lg btn-primary btn-block" onclick="submitForm();">提交</button>
</div>
<script type="text/javascript">
    function submitForm() {
        var username = $("#username").val();
        var password = $("#password").val();

        console.log(username);
        $.ajax({
            url: "/test/test",
            type: "post",
            data: {
                "username": username,
                "password": password
            },
            dataType:"json",
            success: function (data) {
                console.log(data);
                console.log(typeof data);
                alert(data.username);
            }
        })
    }

</script>

结果如下:
在这里插入图片描述
在这里插入图片描述


二、response.getWriter().write():

此时我们重新写一个后台controller:

@RequestMapping(value = "/test2")
    public void sayHello2(HttpServletResponse response,User user) throws IOException {
        response.getWriter().write(JSONObject.toJSON(user).toString());
    }

再来看看结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41071754/article/details/111383258