求解答关于 getWriter输出的问题
Servlet1:
response.getWriter().write(“aaa”);
request.setAttribute(“attr”,”bbb”);
request.getRequestDispatcher(“/jsp1.jsp”).forward(request,response);
jsp1.jsp:
ccc
<%
response.getWriter().write((String)request.getAttribute(“attr”));
%>
为什么输出的是bbbccc而不是cccbbb?
------解决方案--------------------你把这个jsp当成servlet看。。
当这个jsp转化成servlet的时候,就变成了。
out.println("ccc");
response.getWriter().write((String)request.getAttribute(“attr”));
的形式,
如果
bbb在ccc前面的话,那么我估计就是out是 response.getWriter()的一个部分,out会在servlet执行到最后的时候一起写入response.getWriter()中。。
------解决方案--------------------
response.getOutputStream()返回的是ServletOutputStream对象,这个对象没有write方法。你可以用print方法。
而response.getWriter()返回的是PrintWriter对象,这个对象是有write方法的。