Java Web学习———HttpServletResponse

Java Web学习———HttpServletResponse
Tomcat收到客户端的http请求,会针对每一次请求,分别创建一个代表请求的request对象、和代表响应的response对象.

一.response.getOutputStream()向浏览器输出(二进制)

1.print()方法接受字符串,Tomcat会将内容使用IOS 8859-1编码对其进行转换。(中文会报错) 2.write()方法接受二进制,一般使用getBytes()将其转化。

二.三种方式设置Content-type

1. response.setHeader("Content-Type", "text/html;charset=UTF-8"。
2. 自己写一个meta标签
3. response.setContentType("text/html;charset=UTF-8")。最简单,不仅设置浏览器用UTF-8显示数据,内部还把中文转码的码表设置成UTF-8了

三.调用getWriter()方法向浏览器输出数据(字符数据)

四.response的API

1.response.setStatus(302):设置返回的http状态码 2.response.setHeaders():设置返回的响应头 3.response.sendRedirect():重定向,实质上是对前面两个的封装

五.getWriter和getOutputStream细节

1.getWriter()和getOutputStream()两个方法不能同时调用。如果同时调用就会出现异常

2.Servlet程序向ServletOutputStream或PrintWriter对象中写入的数据将被Servlet引擎从response里面获取,Servlet引擎将这些数据当作响应消息的正文,然后再与响应状态行和各响应头组合后输出到客户端。

3.Servlet的serice()方法结束后【也就是doPost()或者doGet()结束后】,Servlet引擎将检查getWriter或getOutputStream方法返回的输出流对象是否已经调用过close方法,如果没有,Servlet引擎将调用close方法关闭该输出流对象.