Web 服务器收到客户端的 http 请求,会针对每一次请求,分别创建一个用于代表请求的 request 对象和代表响应的 response 对象。
request 和 response 对象代表请求和响应:获取客户端数据,需要通过 request 对象;向客户端输出数据,需要通过 response 对象。
HttpServletResponse 的主要功能用于服务器对客户端的请求进行响应,将 Web 服务器处理后的结果返回给客户端。service0方法中形参接收的是 HttpServletResponse 接口的实例化对象,这个对象中封装了向客户端发
送数据、发送响应头,发送响应状态码的方法。
7.1.响应数据
接收到客户端请求后,可以通过 HttpServletResponse 对象直接进行响应,响应时需要获取输出流。
有两种形式:
PrintWriter writer = response.getWriter();
writer.write("hello");9//输出字符串
ServletOutputStream servletOutputStream = response.getOutputStream();
servletOutputStream.write("hi".getBytes());//输出一切数据
但是用ServletOutStream时候,注意最后getbyte因为只能转为字节后才能输出到前端;
代码模拟:
package com.xxx.servlet;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
@WebServlet("/ser05")
public class servlet05 extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// PrintWriter writer = response.getWriter();
// writer.write("hello");9//输出字符串
ServletOutputStream servletOutputStream = response.getOutputStream();
servletOutputStream.write("hi".getBytes());//输出一切数据
}
}
效果图:
注意!!!!!!!!!!!!!!!!!!!!!!!!
在同一个范围域中,以上两种输出输出 只能有一个,处于你死我活的状态,为什呢
看下文:
加入两者同时存在;
会出现什么情况呢:
look
;
package com.xxx.servlet;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
@WebServlet("/ser05")
public class servlet05 extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter writer = response.getWriter();
writer.write("hello");//输出字符串
ServletOutputStream servletOutputStream = response.getOutputStream();
servletOutputStream.write("hi".getBytes());//输出一切数据
}
}
只有第一个输出
原因如下:
控制台显示;rponse已经被使用,so:
你懂了吗;
reponse只能有一个,一旦被使用。就无法继续;



