我试图只是直接写入响应对象来输出我的请求。这对servlet非常有用,但是对于Spring-MVC,由于某些我无法理解的原因,我最终创建了一个无限循环。基本上控制器只是被反复调用。我甚至都不知道这是怎么可能的。
public ModelAndView handleRequest(
HttpServletRequest request, HttpServletResponse response )
throws ServletException, IOException
{
System.out.println("I will get called infinitely");
response.getWriter().print( "Hello World!");
response.getWriter().close();
return new ModelAndView();
}
所以问题是,是否有人知道为什么它会对此页面产生无限量的重新请求?它似乎只发生在我创建一个没有任何内容的ModelAndView()时。但在这种情况下,我不想要任何东西,只是一个空白页面。那么其次是否有办法实现这一目标?
答案 0 :(得分:4)
尝试返回null
而不是ModelAndView
,并致电flush()
而不是close()
。像这样,
public ModelAndView handleRequest( HttpServletRequest request, HttpServletResponse response )
throws ServletException, IOException {
System.out.println("I will get called infinitely");
response.getWriter().print( "Hello World!");
response.getWriter().flush();
return null;
}
注意:我不确定close()
是否会提交response
,flush()
是否会提交。
答案 1 :(得分:1)
ModelAndView类的空viewName可能会导致使用当前请求的视图。
您可以使用void
或@ResponseBody String
作为返回类型。