• Javaee----重新回顾servlet


    最近的项目涉及到servlet开发,不得不回顾一下java servelt 。 发现lz的基本功还是很差

    1. 每一个servlet都必须实现servlet接口,GenericServlet是个通用的、不特定于任何协议的Servlet,它实现了Servlet接口,而且HttpServlet继承与GenericServlet,因此HttpServlet也实现了Servlet接口,所以我们定义的Servlet只需要继承HttpServlet父类即可。

    2. servlet 接口中定义了一个service方法,HttpServlet 对该方法进行了实现,实现方式就是将 ServletRequest 与 ServletResponse 转换为HttpServletRequest 与 HttpServletResponse。然后重载service方法。

     

    3.  在该 service 方法中, 首先获得到请求的方法名, 然后根据方法名调用对应的 doXXX 方法,比如说请求方法为 GET,那么就去调用 doGet方法;请求方法为 POST,那么就去调用 doPost 方法。

    4. 在 HttpServlet 类中所提供的 doGet、doPost 等方法都是直接返回错误信息,所以我们需要在自己定义的 Servlet 类中 override 这些方法

    5.  Servelt 核心 API 之间的关系 UML 图:

     

    6. Servlet 的启动 (默认是单例Servlet)(默认第一次调用servlet时,执行init方法)

    • 在下列时刻Servlet容器装载Servlet:
      – Servlet容器启动时自动装载某些Servlet
      – 在Servlet容器启动后,客户首次向 Servlet 发出请求
      – Servlet的类文件被更新后,重新装载Servlet

    • Servlet被装载后,Servlet容器创建一个 Servlet 实
      例并且调用 Servlet 的 init()方法进行初始化。在
      Servlet的整个生命周期中,init方法只会被调用一次。

      a) 使得Servlet容器启动时自动装载某些Servlet(配置load-on-startup属性)

        

    7 对于request.setAttribute("key", "value"); 实际上是维护了一个ConcurrentHashMap

      因为request对象时tomcat产生的。所以得冲tomcat的源码中查看。

      

  • 相关阅读:
    composer国内镜像配置
    composer.json和composer.lock作用
    工厂模式(描述语言PHP)
    PHP后期静态绑定
    js事件冒泡和事件捕获
    去帮助别人,并接受别人的帮助
    平静,问题本身也是问题
    总是被欲望折磨的我
    习惯产生力量
    秦岭野生动物园
  • 原文地址:https://www.cnblogs.com/chihirotan/p/5862115.html
Copyright © 2020-2023  润新知