Spring Servlet相关知识

作者: 迦叶_金色的人生_荣耀而又辉煌 | 来源:发表于2021-02-18 07:21 被阅读0次

    上一篇 <<<Spring常用注解汇总
    下一篇 >>>Spring原理汇总及零碎知识点


    1.什么是Servlet

    Servlet是运行在Web服务器或应用服务器上的中间层程序,可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。

    2.和CGI相比的优势是什么

    CGI(Common Gateway Interface,公共网关接口)功能类似,但有以下优势:
    a、性能明显更好,它在web服务器地址空间内执行,没必要创建单独的进程来处理每个客户端请求。
    b、它独立于平台,是java编写
    c、在java安全管理器执行了一些限制,所以是可信的。
    d、java类库的全部功能对Servlet来说都是可用的

    3.Servlet的生命周期

    Servlet 加载—>实例化—>服务—>销毁。
    a、init():
    在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet对象。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行init()。
    b、service():
    它是Servlet的核心,负责响应客户的请求。每当一个客户请求一个HttpServlet对象,该对象的Service()方法就要调用,而且传递给这个方法一个“请求”(ServletRequest)对象和一个“响应”(ServletResponse)对象作为参数。在HttpServlet中已存在Service()方法。默认的服务功能是调用与HTTP请求的方法相应的do功能。
    c、destroy():
    仅执行一次,在服务器端停止且卸载Servlet时执行该方法。当Servlet对象退出生命周期时,负责释放占用的资源。一个Servlet在运行service()方法时可能会产生其他的线程,因此需要确认在调用destroy()方法时,这些线程已经终止或完成。

    4.Servlet线程是否安全

    不安全,servlet走的单例,所有线程走的同一个bean。


    5.DispatcherServlet与Servlet类有什么区别

    DispatcherServlet其实就是一个Servlet类,无非就是包装来根据url能够映射找到我们的SpringMVC中定义的请求方法。
    DispatcherServlet继承FrameworkServlet继承HttpServlet


    6.Servlet与SpringMVC的区别

    SpringMVC是基于Servlet封装的MVC框架,属于扩展。
    springMVC 线程要改为线程安全,设置为request多例


    推荐阅读:
    <<<Spring原理汇总及零碎知识点
    <<<Web项目的启动方式汇总
    <<<SpringMVC底层无web.xml启动原理分析
    <<<SpringMVC运行流程
    <<<DispatcherServlet执行原理分析
    <<<过滤器与拦截器的区别
    <<<SpringMVC拦截器的用法
    <<<SpringMVC异步实现方式
    <<<@Async注解的失效之谜
    <<<SpringMVC适配器类型汇总

    相关文章

      网友评论

        本文标题:Spring Servlet相关知识

        本文链接:https://www.haomeiwen.com/subject/nrryxltx.html