什么是response
- response对象是由服务器创建的,我们来进行使用.
- response对象是用来设置响应消息的
功能: 设置响应消息
1. 设置响应行
1. 格式: HTTP/1.1 200 ok
2. 设置状态码: setStatus(int sc);
2. 设置响应头: setHeader(String name, String value);
3. 设置响应体:
* 使用步骤:
1. 获取输出流
* 字符输出流: PrintWriter getWriter()
* 字节输出流: ServletOutputStream getOutputStream()
2. 使用输出流,将数据输出到客户端浏览器
4. 重定向
方法一:
* 步骤:
1. 设置状态码为302
* response.setStatus(302)
2. 设置响应头: redirect
* response.setHeader("域名(ip地址)", "重定向的地址(路径)");
* 自己测试的话可以用localhost
方法二:
* 这种比较方便
* response.sendRedirect("重定向的地址(路径)");
* 路径写法:
1. 路径的分类
1. 相对路径: 通过相对路径不可以确定唯一资源
* 如: ./index.html
* 不以/开头, 以.开头
* 规则: 找到访问的当前资源和目标资源之间的相对位置关系
* ./当前目录
* ../后退一级目录
2. 绝对路径: 通过绝对路径可以确定唯一资源
* 如: http://localhost/text/responseDemo2
* 以斜杠开头的路径
* 规则: 判断定义的路径是给谁用的? 判断请求将来从哪儿发出
* 给客户端浏览器使用: 需要假虚拟目录(项目的访问路径)
* 建议虚拟目录动态获取: request.getContextPath()
* <a>, <form>, 重定向....
* 给服务器使用: 不需要加虚拟目录
* 转发路径
3. 服务器输出字节数据到浏览器
* 步骤:
1. 获取字节输出流
2. 输出数据
服务器输出字符数据到浏览器
* 步骤:
1. 获取字符输出流
2. 输出数据
* 注意:
* 乱码问题:
1. PrintWriter pw = response.getWriter(); 获取流的默认编码是ISO-8859-1
2. 设置该流的编码
3. 告诉浏览器响应体使用的编码
//简单形式, 设置编码,是在获取流之前设置
response.setContentType("text/html;charser=utf-8");
服务器输出字节数据到浏览器
* 步骤:
1. 获取字节输出流
2. 输出数据