• servlet总结


    1、servlet运行过程:

    ①web服务器受到浏览器的servlet请求后,web容器首先检查是否装载并创建了该servlet实例对象。

    ②如果没有,web容器则装载并创建servlet实例对象。如果有,则直接跳到④。

    ③调用servlet的init方法。

    ④创建一个封装了http请求消息的httpservletrequest对象,和一个代表http响应消息的httpservletresponse对象,并将这两个对象作为参数,传入service方法。

    ⑤web应用被停止或者被重启之前,会调用destroy方法。

    2、servlet与普通java类区别:

    ①servlet不能独立运行,完全用servlet引擎来控制和调度。

    ②通常情况下,servlet使用单例模式,只在第一次访问时创建一次,可多次调用。

    3、配置文件中<servlet>标签内增加<load-on-startup>1</load-on-startup>,可在web容器启动时创建servlet,常用于创建必要的数据库表和数据。

    4、web.xml找不到的servlet,会由缺省servlet处理。

    在tomcat的web.xml文件中,注册了一个名为org.apache.catalina.servlets.DefaultServlet的servlet,并设置为缺省servlet,即路径为"/"

    服务器访问的静态html或图片等,实际是在访问这个缺省servlet。

    5、默认情况下,servlet是单例多线程。如果servlet中有全局变量,则会引起线程不安全。

    为了避免引起线程安全问题,可以实现接口SingleThreadModel,这样将会取消servlet的单例模式,通过创建多个servlet的实例对象来避免线程安全问题发生。

    6、servletContext:

    web容器在启动时,会为每一个web应用程序都创建一个对应的servletContext对象,它代表当前web应用。

    ServletConfig维护了servletContext对象的引用,可以通过getServletContext方式获得servletContext对象。

    一个web应用中,只有一个servletContext,因此servlet对象间可以通过servletContext实现通讯。

    servletContext对象被称为context域对象。

  • 相关阅读:
    Python-深浅拷贝
    Python-生成式
    Python-手写web应用
    Python-为什么产生了GIL锁?
    Python-文件处理
    Python-线程
    10大网站设计错误 足以毁掉你的网站【转】
    [转]ASP.NET验证发生前无法调用 Page.IsValid。应在 CausesValidation=True 且已启动回发的控件
    jquery操作字符串常用方法总结及工作代码
    C#中的序列化和反序列化是什么、有什么作用、使用方法详解
  • 原文地址:https://www.cnblogs.com/yxth/p/6703688.html
Copyright © 2020-2023  润新知