Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java spring mvc是否有response.write直接输出到浏览器?_Java_Spring_Servlets_Spring Mvc - Fatal编程技术网

Java spring mvc是否有response.write直接输出到浏览器?

Java spring mvc是否有response.write直接输出到浏览器?,java,spring,servlets,spring-mvc,Java,Spring,Servlets,Spring Mvc,我正在使用SpringMVC和freetemplate 在asp.net中,您可以使用Response直接向浏览器写入内容 您能在spring mvc中做到这一点吗?如果您使用带注释的控制器(或者我认为不带注释的控制器…),您可以在控制器中使用方法参数HttpServletResponse获取输出流,然后写入屏幕-请参阅 有关可在控制器/处理程序中使用的参数的详细信息,请参阅 (第13.11.4节)我确信在某些情况下这是可能的。例如,如果您有可用的HttpServletResponse对象(就像

我正在使用SpringMVC和freetemplate

在asp.net中,您可以使用Response直接向浏览器写入内容


您能在spring mvc中做到这一点吗?

如果您使用带注释的控制器(或者我认为不带注释的控制器…),您可以在控制器中使用方法参数
HttpServletResponse
获取输出流,然后写入屏幕-请参阅

有关可在控制器/处理程序中使用的参数的详细信息,请参阅
(第13.11.4节)

我确信在某些情况下这是可能的。例如,如果您有可用的
HttpServletResponse
对象(就像您在
控制器中所做的那样,或者如果您编写自己的
视图
),那么您可以调用
getWriter()
getOutputStream()
并写入该对象

但是您需要小心确保您所做的不会干扰您对FreeMarker模板的使用。我不确定您是否可以从FreeMarker模板中管理它。

您可以:

  • 获取
    HttpServletResponse
    并打印到其
    Writer
    OutputStream
    (取决于要发送文本数据还是二进制数据)

  • 使用:


因此,您的
Hello World
文本将被写入响应流。

如果您想向OutputStream发送内容,即使您使用的是Freemaker,也只需使用@ResponseBy即可

例如:

    @RequestMapping(value = "report1", method = RequestMethod.GET, produces = "application/pdf")
    @ResponseBody
    public void getReport1(OutputStream out) {

那么@responsebody会忽略视图解析器吗?我使用的是Freemarker,可以使用类似的方法将文件直接发送到输出流吗?谢谢。@kmehta您必须获得
OutputStream
。我不确定
@ResponseBody
方法。很好。事实证明,使用Spring MVCs FileCopyUtils.copy()非常简单,它接受一个文件流和一个输出流。谢谢你的回复+1。
@RequestMapping(value = "/something")
@ResponseBody
public String helloWorld()  {
  return "Hello World";
}
    @RequestMapping(value = "report1", method = RequestMethod.GET, produces = "application/pdf")
    @ResponseBody
    public void getReport1(OutputStream out) {