原来不用spring boot,我的写法如下:
public void dealResult(  HttpServletRequest request, HttpServletResponse response)
throws  Exception {
    long sartTime=System.currentTimeMillis();
       while(true){
         Student student= getStudentResult();
         if(student!=null) {
                       response.setContentType("text/html;charset=UTF-8");
Writer writer = response.getWriter();
String ret =student.getName()+“is ok";
writer.write(ret);
writer.close();
            if(student.isAllOver)
                break; 
             if(=System.currentTimeMillis()-startTime>60000)
             {
              response.setContentType("text/html;charset=UTF-8");
Writer writer = response.getWriter();
String ret = “Deal over time";
writer.write(ret);
writer.close(); 
                   break;
             }
     }
     }因为是一个链接请求后,会有多个返回,如果改成spring boot的方式,该如何改呢?单独返回一个,我知道是如下的写法:@PostMapping
    @RequestMapping(value = {"/"}, produces = {"application/json; charset=UTF-8"}) 
    public ResponseEntity<Object> dealResult(HttpServletRequest request) { 
                        return new ResponseEntity<>("Deal over time", HttpStatus.OK);
}

解决方案 »

  1.   

    这个springboot 不 boot 有啥关系
      

  2.   

    就是用return 不是就停止循环了吗?
      

  3.   

    springboot 只是简化了配置,原来怎么写现在还是怎么写!
      

  4.   

    跟 SpringBoot 没有关系了,和以前的用法一样,该怎么写就怎么写了
      

  5.   

    就是用return 不是就停止循环了吗?
    你这也太死板了...
    你可以先把要返回的字符串循环拼起来,再一次返回不就行了...
      

  6.   

    建议你重新梳理一下你的逻辑和编程思路,首先你的提问存在两个问题
    1,HTTP 响应只允许有一次,即便是你是基于 Servlet 的也不会发生两次
    2,Spring Boot 其实一个启动容器,你可以确切的说是用 Spring MVC 怎么用。如果你想按照Spring MVC 的方式写你上面的代码依然很简单,只要在方法里面注入 response 就可以了,代码如下。不过建议你认真看看Spring Boot 相关的资料,感觉你这是很多概念都没有理解清楚。
    ```java
    @RequestMapping(value = "/test", method = RequestMethod.GET)
        public void dealResult(HttpServletResponse response)
            throws Exception {
            long startTime = System.currentTimeMillis();
            while (true) {
                Student student = new Student();
                if (student != null) {
                    response.setContentType("text/html;charset=UTF-8");
                    Writer writer = response.getWriter();
                    String ret = student.getName() + "is ok ";
                    writer.write(ret);
                    writer.close();
                    if (student.isAllOver) {
                        break;
                    }
                    if (System.currentTimeMillis() - startTime > 1000) {
                        response.setContentType("text/html;charset=UTF-8");
                        Writer writer2 = response.getWriter();
                        writer2.write("Deal over time ");
                        writer2.close();
                        break;
                    }
                }
            }
        }
    ```小编为订阅号「码匠笔记」号主,先后就职于 ThoughtWorks、阿里巴巴等互联网公司的经验分享,包含但不限于 JAVA、并发编程、性能优化、架构设计、小程序、开源软件等。有兴趣可以关注一波,一起学习、讨论。
      

  7.   

    你把所有的凭借在一起,返回一个json就可以了呀
      

  8.   


    HTTP 响应只允许有一次?为啥你代码里的response可以循环返回呢
      

  9.   


    HTTP 响应只允许有一次?为啥你代码里的response可以循环返回呢
    我只是一模一样的把你的修改成了Spring Boot的 这样你自己就知道怎么修改了