第四章 作为Servlet
编程语言
2021-11-22 11:09:34
阅读次数: 0
servlet受到容器控制
- 容器会全盘控制着servlet的一生,它会创建请求和响应对象、为servlet创建一个新线程或分配一个线程,另外会调用servlet的service()方法,并传递请求和响应对象的引用作为参数。
servlet初始化和线程



- servlet从“不存在”状态迁移到“初始化”状态(这意味着已经准备好为客户请求提供服务),首先是从构造函数开始。但是构造函数只是使之成为一个对象,而不是一个servlet。要想成为servlet,对象必须具备一些“servlet”的特性。对象成为一个servlet时,它会得到servlet该有的所有特权,比如能够使用ServletContext引用从容器得到信息。
servlet真正任务就是处理GET和POST请求
- GET和POST的差异
- 数据大小(Post)
- 安全性(Post)
- 书签(Get)
- 更新(Post)
幂等与非幂等
- Get、Head、Put幂等
- Post非幂等。它会对资源本身产生影响,每次调用都会有新的资源产生,因此不满足幂等性
POST请求非默认
- 如果没有在表单中指出Methond='PSOT',就会默认为HTTP GET请求。
已经了解了请求,下面是响应
- 一次响应返回一种类型内容
- 使用响应向客户发回数据
- 在实际中,可能会使用JSP发送大多数HTML响应,但仍有可能使用一个响应流向客户发送二进制数据(如JAR文件)
重定向和请求分派
- 重定向客户请求的url发生变化,在客户端进行。请求重定向告诉浏览器去访问另一个url
- 不能在响应已经提交之后才调用sendRedirect()!
- 请求分派客户请求的url不会发生变化,在服务端进行。请求分派会把请求传递给服务器上的另一个组件。
转载自juejin.im/post/7033023464965406757