请求和响应

servlet与容器

  1. 用户点击一个链接,链接的URL指向一个servlet.
  2. 容器看出这个请求指向一个一个servlet,容器创建两个对象,HttpServletRequest和HttpServletResponse.
  3. 容器根据请求中的URL查找正确的servlet,为这个请求创建或分配一个线程,并调用servlet的service()方法(传参为HttpServletRequest和HttpServletResponse).
  4. service()方法根据请求方法(get|post|etc)确定调用那个方法.
  5. servlet使用响应对象将响应写至客户(java.io.PrintWriter out = response.getWriter()).响应通过容器传回.
  6. service()方法结束,线程撤销|返回线程池.(请求和响应对象引用已经出了作用域,GC回收).

servlet生命周期:

  1. 容器加载servlet类
  2. 初始化servlet(执行构造函数).
  3. 执行init(),该方法仅调用一次.(该方法在servlet实例创建后,servlet为客户提供服务之前调用.可以覆盖)
  4. service(),处理客户请求,每个请求都在一个单独的线程中运行.(不太可能覆盖,业务逻辑主要在doPost()等中执行)
  5. destroy(),容器调用该方法,仅调用一次.

get()和post():service()通过方法决定调用doGet()|doPost()

  1. get:处理简单请求,参数跟随在URL路径之后.www.example.com/?param1='value1'&param2='value2'在http规范中是幂等的.
  2. post:接受和处理表单请求,传递的数据在请求体中.在http规范中不是幂等的.

request:HttpServletRequest API

response:

    响应是返回给客户的浏览器,浏览器解析和呈现的.可以为PrintWriter(字符)或

原文地址:https://www.cnblogs.com/slowalker-lee/p/7889602.html