response对象
功能:设置响应消息
1.设置响应行
1.1.格式:HTTP/1.1 200 ok
1.2.设置状态码:setStatus(int sc)
2.设置响应头
setHeader(String name, String value)
3.设置响应体
使用步骤:
1.获取输出流
字符输出流
PrintWriter getWriter()
字节输出流
ServletOutputStream getOutputStream()
2.使用输出流将数据输出到客户端浏览器中
案例
1.完成重定向
资源跳转的方式
重定向
1.//1.设置状态码为302
response.setStatus(302);
//2.设置响应体location
response.setHeader("location","/day15/responseDemo2");
2.response.sendRedirect("/day15/responseDemo2");
特点:(对比转发)
1.地址栏发生编号
2.重定向可以访问其他站点(服务器)的资源
3.重定向是两次请求,不能使用request对象来共享数据了
路径写法:
1.路径分类
相对路径
同相对路径不可以确定唯一资源
eg. ./index.html
不以/开头,以.开头
规则:找到当前资源和目标资源之间的相对路径
./ 代表当前目录
../ 代表后退一级目录
绝对路径
通过绝对路径可以确定唯一资源
eg.http://localhost:8080/day15/responseDemo2 /day15/responseDemo2
以/开头
总结:服务器端不使用虚拟目录,客户端用使用虚拟目录
动态获取虚拟目录
request.getContextPath()
2.服务器输出字符数据到浏览器
使用:
PrintWriter pw = response.getWriter();
默认编码格式 : ISO-8859-1
解决中文乱码(设置utf-8编码模式)
response.setContentType("text/html;charset=utf-8");
告诉浏览器,服务器发送的消息数据的编码,建议浏览器使用该编码解码
response.setHeader("content-type","text/html;charset=utf-8");
步骤
//设置编码格式,默认编码格式 : ISO-8859-1
response.setContentType("text/html;charset=utf-8");
//1.获取字符输出流
PrintWriter pw = response.getWriter();
//2.输出数据
pw.write("hello");
pw.println("response");
pw.write("<h1>哈哈哈</h1>");
3.服务器输出字节数据到浏览器
使用
ServletOutputStream sos = response.getOutputStream();
步骤
//1.获取字节输出流
ServletOutputStream sos = response.getOutputStream();
//2.输出数据
sos.write("hello,你好a".getBytes());
4.验证码