版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31539817/article/details/84557145
1,服务器处理请求的流程:
- 服务器每次收到请求时,都会为这个请求开辟一个新的线程。
- 服务器会把客户端的请求数据封装到request对象中,request就是请求数据的载体!
- 服务器还会创建response对象,这个对象与客户端连接在一起,它可以用来向客户端发送响应。
2,response:其类型为HttpServletResponse
- ServletResponse-->与协议无关的类型
- HttpServletResponse-->与http协议相关的类型
回忆一下http协议!http协议中响应的内容包含哪些东西呢?
* 状态码:200表示成功、302表示重定向、404表示客户端错(访问的资源不存在)、500表示服务器端错
- > sendError(int sc) --> 发送错误状态码,例如404、500
- > sendError(int sc, String msg) --> 也是发送错误状态码,还可以带一个错误信息!
- > setStatus(int sc) --> 发送成功的状态码,可以用来发送302
3,响应头:Content-Type、Refresh、Location等等
头就是一个键值对!可能会存在一个头(一个名称,一个值),也可能会存在一个头(一个名称,多个值!)
- > *****setHeader(String name, String value):适用于单值的响应头,例如:response.setHeader("aaa", "AAA");
- > addHeader(String name, String value):适用于多值的响应头
response.addHeader("aaa", "A");
response.addHeader("aaa", "AA");
response.addHeader("aaa", "AAA");
- > setIntHeader(String name, int value):适用于单值的int类型的响应头
response.setIntHeader("Content-Length", 888);
- > addIntHeader(String name, int value):适用于多值的int类型的响应头
- > setDateHeader(String name, long value):适用于单值的毫秒类型的响应头
response.setDateHeader("expires", 1000 * 60 * 60 * 24);
- > addDateHeader(String name, long value):适用于多值的毫秒类型的响应头