HttpServletResponse对象
HttpServletResponse对象
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的HttpServletRequest对象和代表响应的HttpServletResponse对象。
HttpServletRequest对象:获取客户端数据
HttpServletResponse对象: 向客户端输出数据
HttpServletResponse 的主要功能用于服务器对客户端的请求进行响应,将 Web 服务器处理后的结果返回给客户 端。service()方法中形参接收的是 HttpServletResponse 接口的实例化对象,这个对象中封装了向客户端发送数据、 发送响应头,发送响应状态码的方法。
响应数据
- getWriter() 获取输出
PrintWriter writer = response.getWriter();
writer.write("HELLO");
writer.write("<h1>hello</h1>");
- response.getOutputStream(); 输出字节流
ServletOutputStream p = response.getOutputStream();
p.write("HELLOEW".getBytes());
解决响应乱码问题
客户端和服务端的编码方式不一样会乱码
getWrite()和getOutStream()方法乱码解决
乱码解决
// 设置服务端的编码
response.setCharacterEncoding("UTF-8");
// 设置客户端的响应类型及编码
response.setHeader("content-type","text/html;charset=UTF-8");
// 得到字符输出流
PrintWriter writer = response.getWriter();
writer.write("<h2>你好</h2>");
同时设置客户端和服务端的编码格式
使用响应输出流的时候要把客户端和服务端的编码方式统一,这样就可以保证中文不会乱码。
- 上面两句话可以换成下面这句
response.setContentType("text/html;charset=UTF-8");
总结: 要想解决响应的乱码,只需要保证使用支持中文的编码格式。并且保证服务器端 和客户端使用相同的编码方 式即可。
重定向
服务端指导,客户端行为,存在两次请求
请求转发只能找当前项目下的一些资源
重定向可以随便访问
在不需要跳转到项目外时:需要请求共享用请求转发。不需要请求共享的话两种都可以
需要跳转到项目外只能用重定向
重定向可以随便访问
在不需要跳转到项目外时:需要请求共享用请求转发。不需要请求共享的话两种都可以
需要跳转到项目外只能用重定向