• JSP与Servlet


    1. jsp经编译后就变成了servlet.(jsp的本质就是servlet,jvm只能识别java的类,不能识别jsp的代码,web容器将jsp的代码编译成jvm能够识别的java类)
    2. jsp更擅长表现于页面显示,servlet更擅长于逻辑控制.
    3. servlet中没有内置对象,jsp中的内置对象都是必须通过httpservletrequest对象,httpservletresponse对象以及httpservlet对象得到.
    4. jsp是servlet的一种简化,使用jsp只需要完成程序员需要输出到客户端的内容,jsp中的java脚本如何镶嵌到一个类中,由jsp容器完成。而servlet则是个完整的java类,这个类的service方法用于生成对客户端的响应。

    servlet生命周期分为三个阶段:

    1. 初始化阶段,调用init()方法
    2. 响应客户请求阶段,调用service()方法
    3. 终止阶段,调用destroy()方法

    加载并实例化
          servlet容器负责加载和实例化servelt。当servlet容器启动时,或者在容器检测到需要这个servlet来响应第一个请求时,创建servlet实例。当servlet容器启动后,servlet通过类加载器来加载servlet类,加载完成后再new一个servlet对象来完成实例化。
    初始化
          在servlet实例化之后,容器将调用init()方法,并传递实现servletconfig接口的对象。在init()方法中,servlet可以部署描述符中读取配置参数,或者执行任何其他一次性活动。在servlet的整个生命周期类,init()方法只被调用一次。
    请求处理
          当servlet初始化后,容器就可以准备处理客户机请求了。当容器收到对这一servlet的请求,就调用servlet的service()方法,并把请求和响应对象作为参数传递。当并行的请求到来时,多个service()方法能够同时运行在独立的线程中。通过分析servletrequest或者httpservletrequest对象,service()方法处理用户的请求,并调用servletresponse或者httpservletresponse对象来响应。
    销毁
          一旦servlet容器检测到一个servlet要被卸载,这可能是因为要回收资源或者因为它正在被关闭,容器会在所有servlet的service()线程之后,调用servlet的destroy()方法。然后,servlet就可以进行无用存储单元收集清理。这样servlet对象就被销毁了。这四个阶段共同决定了servlet的生命周期。

    二、jsp生命周期
          jsp页必须转换成servlet,才能对请求进行服务,因此jsp的底层完全是servlet。这样看来jsp的生命周期就包括六个阶段:转换、编译、加载并实例化、jspinit()调用(即初始化)、_jspservice()调用(即请求处理)、jspdestroy()调用(即销毁)。

    • 转换:就是web容器将jsp文件转换成一个包含了servlet类定义的java源文件。
    • 编译:把在转换阶段创建的java源文件编译成类文件。
    • 装载和实例化:服务器端会为jsp页面查找已有的实现类,如果没有,就把这个实现类载入jvm中;载入jvm后就立刻产生一个该类的实例,或者在第一次请求时执行。
    • 初始化:初始化jsp页面对象。
    • 请求处理:由页面对象响应客户端的请求。
    • 生命周期终止:在所有的请求处理完成之后,会释放掉这个类的所有实例。
  • 相关阅读:
    安卓巴士诚招版主,希望各位巴友踊跃加入我们!
    android用户界面之菜单(Menu)教程实例汇总
    360将推出多款360用户特供手机
    安卓巴士最新精选文章,请您查阅
    android用户界面之SeekBar教程实例汇总
    Android OpenGL ES 开发教程小结
    android用户界面之按钮(Button)教程实例汇
    Seleniumwebdriver系列教程(5)————如何定位frame中的元素
    Seleniumwebdriver系列教程(10)————如何智能的等待页面加载完成
    Seleniumwebdriver系列教程(6)————如何捕获弹出窗口
  • 原文地址:https://www.cnblogs.com/wxgblogs/p/5740982.html
Copyright © 2020-2023  润新知