请求的组成
响应的组成
请求头:请求头是客户端发送给服务器端的一些信息,使用键值对表示key:value
请求体
当请求方式是post的时,请求体会有请求的参数,格式如下:
username=zhangsan&password=123
如果请求方式为get,那么请求参数不会出现在请求体中,会拼接在url地址后面
http://localhost:8080...?username=zhangsan&password=123
响应头
response设置响应参数
设置响应行
response.setStatus(int sc);
设置响应头(add表示添加,set表示设置)
addHeader(String name, String value)
addIntHeader(String name, int value)
addDateHeader(String name, long date)
setHeader(String name, String value)
setDateHeader(String name, long date)
setIntHeader(String name, int value)
设置响应体
字符流设置响应体
获得字符流:PrintWriter getWriter()
通过字符流的write(String s)方法可以将字符串设置到response缓冲区中
随后Tomcat会将response缓冲区中的内容组装成Http响应返回给浏览器端
设置中文的乱码问题
response的setCharacterEncoding("UTF-8")//设置response的编码
我们发现客户端还是不能正常显示中文
因为我们将response缓冲区的编码设置成UTF-8,但浏览器的默认编码是本地系统的编码GBK去解码
可以在代码中指定浏览器解析页面的编码方式
response.setContentType("text/html;charset=UTF-8");//方法指定页面解析时的编码是UTF-8
上面的代码不仅可以指定浏览器解析页面时的编码,同时也内含setCharacterEncoding的功能
所以在实际开发中只要编写response.setContentType("text/html;charset=UTF-8");就可以解决页面输出中文乱码问题
字节流设置响应体
获得字节流:ServletOutputStream getOutputStream()
通过该字节流的write(byte[] bytes)可以向response缓冲区中写入字节
在由Tomcat服务器将字节内容组成Http响应返回给浏览器