第四章 作为Servlet

servlet受到容器控制

  1. 容器会全盘控制着servlet的一生,它会创建请求和响应对象、为servlet创建一个新线程或分配一个线程,另外会调用servlet的service()方法,并传递请求和响应对象的引用作为参数。

servlet初始化和线程

image.png

image.png

image.png

  1. servlet从“不存在”状态迁移到“初始化”状态(这意味着已经准备好为客户请求提供服务),首先是从构造函数开始。但是构造函数只是使之成为一个对象,而不是一个servlet。要想成为servlet,对象必须具备一些“servlet”的特性。对象成为一个servlet时,它会得到servlet该有的所有特权,比如能够使用ServletContext引用从容器得到信息。

servlet真正任务就是处理GET和POST请求

  1. GET和POST的差异
    • 数据大小(Post)
    • 安全性(Post)
    • 书签(Get)
    • 更新(Post)

幂等与非幂等

  1. Get、Head、Put幂等
  2. Post非幂等。它会对资源本身产生影响,每次调用都会有新的资源产生,因此不满足幂等性

POST请求非默认

  1. 如果没有在表单中指出Methond='PSOT',就会默认为HTTP GET请求。

已经了解了请求,下面是响应

  1. 一次响应返回一种类型内容
  2. 使用响应向客户发回数据
  3. 在实际中,可能会使用JSP发送大多数HTML响应,但仍有可能使用一个响应流向客户发送二进制数据(如JAR文件)

重定向和请求分派

  1. 重定向客户请求的url发生变化,在客户端进行。请求重定向告诉浏览器去访问另一个url
  2. 不能在响应已经提交之后才调用sendRedirect()!
  3. 请求分派客户请求的url不会发生变化,在服务端进行。请求分派会把请求传递给服务器上的另一个组件。

猜你喜欢

转载自juejin.im/post/7033023464965406757
今日推荐