zoukankan      html  css  js  c++  java
  • 【drp 9】Servlet生命周期

    一、基本概念

    Servlet(Server Applet):全称Java Servlet,是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。


    Servlet生命周期:

    servlet有良好的生存期定义,包括加载,实例化,初始化,处理请求以及服务结束!这个生存周期分别由java.servlet.Servlet接口的init,service和destroy方法表达!


    1,第一个到服务器的HTTP请求被委派到servlet容器。
    2,servlet容器装载,然后再调用这个servlet的service()方法。
    3,然后servlet容器产生多个线程,每个线程执行一个单一的servlet实例的service()方法的处理多个请求。


    二、主要方法概述

    2.1,init()

    <span style="font-family:KaiTi_GB2312;font-size:18px;">public void init() throws ServletException {
      // Initialization code...
    }</span>
    Servlet被服务器实例化后,容器运行其init方法,这个方法只运行一次,作用于servlet整个生命周期!

    2.2,service()

    <span style="font-family:KaiTi_GB2312;font-size:18px;">public void service(ServletRequest request, 
                        ServletResponse response) 
          throws ServletException, IOException{
    }</span>

    service()方法是主要的方法来执行实际的任务。请求到达时,运行servlet的service方法检查HTTP请求类型(GET,POST,PUT,DELETE等),并调用doGet,doPost方法,doPut,doDelete,等适当的方法。由于service是调用其他方法,所以,在实际运用的时候,主要重写相应的doGet、doPost方法等。什么时候重写doGet或是doPost,请看博客: [drp 8]get和post的区别,以及乱码问题的解决

    2.3,destroy()

    <span style="font-family:KaiTi_GB2312;font-size:18px;">public void destroy() {
        // Finalization code...
      }</span>
    这个方法,是servlet生命周期的最后一步,在整个生命周期中只执行一次,在这个方法中,可以做关闭数据库连接,停止后台线程等释放内存类似的工作。


    三、总结

    对于servlet生命周期的理解,其实感觉和平常用的try{ }catch{ }finally{ }代码段很像,在我们用try的时候,会在之前声明一些变量或者赋值等,算是一种前期准备,这个就相当于init初始化方法,然后,我们在try语句段去执行我们真正想要执行的方法,也就是servlet里面的service方法。最后捕捉完异常,我们会用finally语句段去做最后的处理,如:关闭数据库,事务回滚等,这就等同于servlet的destroy方法。

    对于基础知识的总结学习,还任重而道远!


  • 相关阅读:
    java Exception in thread "main" java.lang.NoClassDefFoundError: main (wrong name: pm/main)
    javac 编译java文件提示: 程序包com.mysql.jdbc不存在
    Java开发笔记(二十四)方法的组成形式
    Java开发笔记(二十三)数组工具Arrays
    Java开发笔记(二十二)神奇的冒号
    Java开发笔记(二十一)二维数组的扩展
    Java开发笔记(二十)一维数组的用法
    Java开发笔记(十九)规律变化的for循环
    Java开发笔记(十八)上下求索的while循环
    Java开发笔记(十七)各得其所的多路分支
  • 原文地址:https://www.cnblogs.com/hhx626/p/6010328.html
Copyright © 2011-2022 走看看