响应数据

getwriter() 字符输出流(输出字符串)、
getOutputStream() 字节输出流(可以输出一切数据)
注意:两种流不能同时使用

字符流输出

PrintWriter out = resp.getWriter();
out.write(“out.writer测试机”);

字节流输出

ServletOutputStream cout= resp.getOutputStream();
cout.write(“hi你好啊”.getBytes(StandardCharsets.UTF_8));
汉字输出到页面端乱码时在类首行写:
resp.setContentType("text/html;charset=utf-8");

重定向

特点


1,服务端指导,客户端行为
2,存在两次请求
3,地址栏会发生改变
4,request对象不共享

注意重定向路径有中文时:

1,当重定向路径中有中文会乱码时按照下面的写法;
response.sendRedirect("**英文路径?**"+UR
LEncoder._encode_("中文路径","utf-8"));
URLEncoder._encode_()方法中不能含有符号,否则又会乱码
image.png
2,所以所重定向可以使用get的方法进行传值
image.png
跳转的页面源码:
image.png
网页显示。
image.png

请求转发与重定向的区别

请求转发request.getRequestDispatcher().forward() 重定向
response.sendRedirect()
一次请求,在同个项目中数据在request域中共享 两次请求,数据在request域中不共享,不同项目可以通过get进行传值
地址栏不会发生改变 地址栏会发生改变
绝对地址栏定位到站点后 绝对地址可写到http://

两者都可以实现页面跳转。