1、Servlet的Response对象:(向客户机输出数据)
HttpServletResponse对象代表服务器的响应。这个对象中封装了向客户端发送数据、发送响应头,发送响应状态码的方法。
2、向客户端输出数据
1)getoutputStream:得到输出的二进制数据
2)getWriter:输出文本数据的ServletOutputStream、PrintWriter对象
注意:这两个方法互相排斥,调用了其中一个就不能调用另外一个。
3)Servlet程序向ServletOutputStream或PrintWriter对象中写入的数据将被Servlet引擎从response里面获取,Servlet引擎将这些数据当前响应消息的正文,然后再与响应状态行和各响应头组合后输出到客户端。
3、简单举例:
package com.westes.Servlet;
import javax.servlet.ServletException;
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.OutputStream;
public class ResponseServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
//Servlet的response对象的getOutputStream方法
//输出数据
String country = "china";
OutputStream out = response.getOutputStream();
out.write(country.getBytes("utf-8"));
//浏览器出现:china
out.flush();
out.close();
}
}
package com.westes.Servlet;
import javax.servlet.ServletException;
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;
public class ResponseServlet_2 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
//response对象的getWriter方法
String city = "西安";
PrintWriter pw = response.getWriter();
pw.println(city);
pw.write(city);
//浏览器输出西安 西安
}
}