@WebServlet("/resp1")
public class ResponseDemo1 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("resp1...");
/* // 重定向
// 1. 设置响应状态码 302
response.setStatus(302);
// 2. 设置响应头 Location
response.setHeader("Location","resp2");*/
// 简化方式完成重定向
response.sendRedirect("resp2");
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
路径
// 动态获取虚拟目录
String contextPath = request.geContextPath();
字符:
/**
* 相应字符数据:设置字符数据的响应体
*/
@WebServlet("/resp3")
public class ResponseDemo3 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
// 1. 获取字符输出流
PrintWriter writer = response.getWriter();
// content-type
// response.setHeader("content-type","text/html");
writer.write("你好");
writer.write("<h1>aaa</h1>");
// 细节:流不需要关闭
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
字节:
/**
* 相应字节数据:设置字节数据的响应体
*/
@WebServlet("/resp4")
public class ResponseDemo4 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1. 读取文件
FileInputStream fis = new FileInputStream("D:\\1.jpg");
// 2. 获取response字节输出流
ServletOutputStream os = response.getOutputStream();
// 3. 完成流的copy
// byte[] buff = new byte[1024];
// int len = 0;
// while((len=fis.read(buff))!=-1){
// os.write(buff,0,len);
// }
IOUtils.copy(fis, os);
fis.close();
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}