zoukankan      html  css  js  c++  java
  • 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页面对象。
    • 请求处理:由页面对象响应客户端的请求。
    • 生命周期终止:在所有的请求处理完成之后,会释放掉这个类的所有实例。
  • 相关阅读:
    vue1.0
    网络抓包(四)
    物联网框架ServerSuperIO
    Solrcloud(Solr集群)
    机器学习1
    TCP/IP协议族(一)
    ElasticSearch(简称ES)
    工具
    线程本地变量的使用
    Features of Spring Web MVC
  • 原文地址:https://www.cnblogs.com/wxgblogs/p/5740982.html
Copyright © 2011-2022 走看看