请问,为何有out.flush();语句,页面就不能重定向页面呢?

来源:3-10 response对象

小羊爱主

2015-06-11 21:40

<%@ page language="java" import="java.util.*,java.io.*" contentType="text/html; charset=utf-8"%>
<%
	response.setContentType("text/html;charset=utf-8");
	out.print("<h1>response内置对象</h1>");
	out.print("<hr>");
	out.flush();
	PrintWriter outer=response.getWriter();
	outer.println("大家好,我是response对象生成的输出流outer对象");
	response.sendRedirect("reg.jsp");//请求重定向
%>


写回答 关注

2回答

  • 好帮手慕珊
    2015-06-12 09:31:01
    已采纳

    使用out.flush()语句会抛出异常,导致后面的代码不能执行,也就不能重定向页面了。你可以自己运行一下代码,不给flush加注释,看看会有什么问题:)

    stagry 回复YibuMe

    引用下面网友的回复 1、重定向之前,不能够有out.close()或者out.flush()操作。否则会有java.lang.IllegalStateException。 2、重定向之前,如果response对象缓存有数据,则这些数据会被清空 直白点说就是,response.sendRedirect的response对象和response.getWriter的response对象是一个,如果flush了,response对象缓存的数据会被清空,这样的话,就会有异常啦

    2015-11-02 23:44:45

    共 3 条回复 >

  • 萌萌哒猫头鹰
    2016-01-13 12:29:01

    看了楼上的还是没有明白。out和response的printwriter应该是两个不同的输出对象。out.flush应该是清空out对象的输出,为什么response对象的输出也会被清空?

    qq_慕仰0...

    为什么呢?蹲一个回答

    2022-03-03 17:19:00

    共 2 条回复 >

JAVA遇见HTML——JSP篇

Java Web入门级教程JSP,带你轻松的学习JSP基础知识

248278 学习 · 3071 问题

查看课程

相似问题