服务器处理请求的流程:
(1) 服务器每次收到请求时,都会为这个请求开辟一个新的线程;
(2) 服务器会把客户端的请求数据封装到request对象中,request就是请求数据的载体;
(3) 服务器还会创建response对象,这个对象与客户端连接在一起,它可以用来向客户端发送响应。
3.1.1 HttpServletResponse概述
ServletResponse:与协议无关的类型;HttpServletResponse:与http协议相关的类型。
response是Servlet#service(ServletRequest, ServletResponse) 方法的一个参数,类型为javax.servlet.ServletResponse;
在客户端发出每个请求时,服务器都会创建一个response对象,并传入给Servlet#service(ServletRequest, ServletResponse)方法;
response对象是用来对客户端进行响应的,这说明在service(ServletRequest, ServletResponse) 方法中使用response对象可以完成对客户端的响应工作;
接口ServletResponse的定义可参考“JSP内置对象之response对象”,“response”对象的原型即实现了此接口。
3.1.2 HTTP响应协议
响应首行;响应头(头名-头值);空行;响应体。
响应内容是由服务器发送给浏览器的内容,浏览器会根据响应内容来显示。
Status-Line) HTTP/1.1 200 OK
Server Apache-Coyote/1.1
Content-Type text/html;charset=UTF-8
Content-Length 740
Date Mon, 12 Jan 2015 12:46:23 GMT
3.1.3 状态码
l 200:请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中;
l 404:请求的资源没有找到,说明客户端错误请求了不存在的资源;
l 500:请求资源找到了,但服务器内部出现了错误;
l 302:重定向,当响应码为302时,表示服务器要求浏览器重新再发一个请求,服务器会发送一个响应头Location,它指定了新请求URL地址。