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>");

image-20211023210755972

  • response.getOutputStream(); 输出字节流
ServletOutputStream p = response.getOutputStream();
p.write("HELLOEW".getBytes());

image-20211023210836452

解决响应乱码问题

客户端和服务端的编码方式不一样会乱码

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");

总结: 要想解决响应的乱码,只需要保证使用支持中文的编码格式。并且保证服务器端 和客户端使用相同的编码方 式即可。

重定向

image-20211023211902278

服务端指导,客户端行为,存在两次请求

请求转发只能找当前项目下的一些资源

重定向可以随便访问

在不需要跳转到项目外时:需要请求共享用请求转发。不需要请求共享的话两种都可以

需要跳转到项目外只能用重定向

重定向可以随便访问

在不需要跳转到项目外时:需要请求共享用请求转发。不需要请求共享的话两种都可以

需要跳转到项目外只能用重定向

posted @ 2022-04-26 21:10  墨镜一戴谁也不爱  阅读(65)  评论(0)    收藏  举报