Java Web请求和响应机制

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头,完成重定向!

 

猜你喜欢

转载自www.cnblogs.com/xjs1874704478/p/10792878.html