@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());
    }

再来看看结果:
在这里插入图片描述
两种方式作用都是相同的,希望可以帮到大家!


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值