HttpServletResponse
web服务器接收到客户端的http请求,针对这个请求,分别创建一个代表请求的HttpServletResponse对象,代表响应的一个HttpServletResponse
1、向浏览器输出消息
2、下载文件
//1、获取下载文件的路径
String realPath = "D:\\javaExercise\\JavaWeb\\javaweb-02-servlet\\response\\src\\main\\resources\\我的世界.png";
//2、下载的文件名是啥?
String fileName = realPath.substring(realPath.lastIndexOf("\\") + 1);
//3、设置想办法让浏览器能够支持下载我们需要的东西
resp.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(fileName,"utf-8"));
//4、获取文件下载的输入流
FileInputStream in = new FileInputStream(realPath);
//5、创建缓冲区
int len = 0;
byte[] buffer = new byte[1024];
//6、获取OutPutStream对象
ServletOutputStream out = resp.getOutputStream();
//7、将FileInputStream写入到buffer缓冲区,使用OutPutStream将缓冲区中的数据输出到客户端
while((len = in.read(buffer)) > 0){
out.write(buffer,0,len);
}
out.close();
in.close();
3、实现重定向
B一个web资源收到客户端A的请求后,B会通知A客户端去访问另一个web资源C,这个过程叫做重定向
常见应用场景:用户登录
resp.sendRedirect("/response_war/d");
重定向和转发的区别
*- 相同点:页面都会实现跳转
*- 不同点:请求转发的时候,url地址栏不会发生变化,状态码 307; 重定向的时候,url地址栏挥发生变化,状态码 302
HttpServletResquest
1、获取前端传递的参数,请求转发