out.print()即把打印内容都存入缓冲区,若调用flush方法,则强制把缓冲区内容打印并清空。
缓冲区问题:缓冲区类似于碗,全部的内容存放在碗中,我们将内容输出到客户端的时候,内容仍然存在于缓冲区(碗)中,缓冲区(碗)只有在满了之后,即碗中的所有数据都被读出到浏览器(客户端)之后,缓冲区才会自动清空(即将碗中的数据全部倒掉,碗空之后再重新盛一满碗数据),而flush()函数相当于外挂的存在,在数据还没有全部输出到客户端的时候就将剩余的数据清空了,会导致剩余的数据无法读出。所以,回答你的问题如下:内容虽然在客户端显示了,但是没有执行flush()方法,这几句诗还是在缓冲区里面。客户端显示的诗句仍然在缓冲区里面,只有在执行了flush()函数或者缓存区满了之后才会被清除从而消失。
request 获取参数两种方法:
1、表单中<form name="logForm" action=“dologin.jsp” method="post">
(若显示有乱码,则在requst接受页面,即dologin.jsp中,添加
<% request.setCharacterEncoding("utf-8"); %>
2、在表单界面中,进行url跳转
<a href="dologin.jsp?username=张三"> URL传参数 </a>
(若显示有乱码,则在tomcat目录下的/conf/server.xml中,添加URIEncoding(如下图))
一开始表单数据,传到handle.jsp界面后,
若采取重定向到dologin.jsp,则无法显示表单数据(二次请求),且URL地址显示的是dologin.jsp。
若采取转发到dologin.jsp,可显示表单数据,且URL地址显示的是handle.jsp。