HttpServletResponse提供了两个方法,用于向客户端回送数据。
getWrite():用于向客户机回送字符数据;
getOutputStream():既可以回送字符数据,也可以回送字节数据(二进制数据);
要特别注意一点:这两个流不能同时调用,否则会运行期报错,如下:
java.lang.IllegalStateException: getOutputStream() has already been called for this response
代码如下:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
//不能同时使用
/* response.setHeader("Content-Disposition", "attachment; filename=1.jpg");
String path=this.getServletContext().getRealPath("/imgs/1.jpg");
System.out.println("path="+path);
FileInputStream fis=new FileInputStream(path);
byte[] buff=new byte[1024];
int len=0;
OutputStream os= response.getOutputStream();
while ((len=fis.read(buff))>0) {
os.write(buff, 0, len);
}
os.close();
fis.close();*/
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print( "using" +this.getClass());
out.println("<br>");
out.print("i am "+request.getParameter("username")+"密码是:"+request.getParameter("password")+".");
out.println("<br>");
out.print("<a href='login.html'>back</a>");
out.println("<br>");
out.println("TIME:"+new Date());
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}