从零开始学习Servlet(1): 作用和生命周期

Servlet

作用

Servlet 是实现了 javax.servlet.Servlet 接口的 Java 类, 负责处理客户端的 HTTP 请求。是客户端 与 数据库或后台应用程序之间交互的媒介 。功能:
1. 读取客户端发送的数据
2. 处理数据,生成结果
3. 发送数据到客户端
这里写图片描述

  • 读取的数据包括:显式数据如(HTML表单),隐式HTTP请求数据(cookies、媒体类型和压缩格式的内容)

  • 处理过程涉及的操作:访问数据库,执行远程方法调用(Remote Method Invocation)RMI或者公共对象请求代理体系结构(Common Object Request Broker Architecture)CORBA调用,调用Web服务,或者直接计算得出对应的响应。

  • 发送的数据:
    显示数据:文档(HTML/XML格式的文本文件、二进制文件(GIF图像)、Excel文件)。
    隐式数据:通知客户端返回的文档类型(如HTML)、设置cookies和缓存参数、其他类型的任务。

生命周期

  • 初始化 init()
  • 处理客户端的请求 service()
  • 终结 destroy()
  • 最后Servlet由JVM的垃圾回收器回收
init()
public void init() throws ServletException {
  // 初始化代码...
}
  • 只调用一次,在且仅在第一次创建Servlet时调用。
  • Servlet创建于用户第一次调用对应于该Servlet的url,但是也可以指定Servlet在服务器第一次启动时被加载。
  • 用户调用一个Servlet时,就会创建一个Servlet实例,用一个用户请求都会产生一个新的线程。然后移交给doGet或doPost方法。init()方法简单的创建或者加载一些数据,这些数据将会用于Servlet的整个生命周期。
service()
public void service(ServletRequest request,ServletResponse response)throws ServletException,IOException{
    ....
    doGet();
    ...
    doPost();
    ....
}
  • 执行任务的主要方法,Web服务器调用service()方法来处理来自客户端的请求,并把格式化的响应结果返回给客户端
  • 当Web服务器接收到一个Servlet请求时,会产生一个新的线程然后调用服务,service()方法检查HTTP请求类型(GET、POST、PUT、DELETE等),并在适当的时候调用doGet、doPost、doPut、doDelete等方法。
  • servive() 由Web服务器调用,service()根据请求的类型调用doGet/doPost/…..等。所以我们不对service()方法做操作。只需根据客户端的请求类型来重写doGet()/doPost()/…
doGet()和doPost()

deget()和doPost()是请求中使用最多的方法

  • doGet()
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException ,IOException{
    //Servlet代码
}

doGet()方法 处理GET请求,一般GET请求来自于一个URL的正常请求,或者是来自一个未指定METHOD的HTML表单。

  • doPost()
public void doPost(HttpServletRequest request,HttpResponse response)throws ServletException,IOException{
//Servlet 代码
}

doPost()方法处理POST请求 ,POST请求来自于一个特别指定了METHOD为POST的HTML表单。

destory()
public void desstroy(){
//
}
  • destory()方法只会被调用一次,在Servlet生命周期结束时调用。
  • destroy()负责关闭数据库连接、停止后台线程、把Cookie列表或者点击计数器写入到磁盘,并执行其他类似的清理活动
总结

调用init()生成Servlet ,多次请求创建多个线程,执行单例的service()方法处理请求,处理完完成destory销毁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值