1.请求响应流程图
===================
服务器处理请求的流程:
服务器每次收到请求时,都会为这个请求开辟一个新的线程。
服务器会把客户端的请求数据封装到request对象中,request就是请求数据的载体!
服务器还会创建response对象,这个对象与客户端连接在一起,它可以用来向客户端发送响应。
===================
response:其类型为HttpServletResponse
*状态码:200表示成功、302表示重定向、404表示客户端错误(访问的资源不存在)、500表示服务器错误
>sendError(int sc):发送错误的状态码,例如404、500
>sendError(int sc, String msg):发送错误的状态码+错误信息
>sendStatus(int sc):发送成功的状态码,例如302
404案例:
1 //404案例 2 @Override 3 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 4 resp.sendError(404,"您访问的资源不存在!!!"); 5 }
*响应头:Content-Type、Refresh、Location等等
头就是一个键值对!可能会存在一个头(一个名称,一个值),也可能会存在一个头(一个名称,多个值!)
>(重要)setHeader(String name, String value):适用于单值的响应头,例如:response.setHeader("aa","AAA");
>addHeader(String name, String value):适用于多值的响应头
response.addHeader("aa","A");
response.addHeader("aa","AA");
response.addHeader("aa","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); 设置页面过期时间为24小时
>addDateHeader(String name, long value):适用于多值的毫秒类型的响应头
案例:
1)发送302,设置Location头,完成重定向!