zoukankan      html  css  js  c++  java
  • 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的源码中查看。

      

  • 相关阅读:
    如何在mysql客户端即mysql提示符下执行操作系统命令
    干掉safedog命令
    面试题-----判断两个无环单链表是否交叉,如果交叉返回交叉点
    面试题-----单链表的反转
    面试题-----ICMP协议简介
    面试题-------SSL协议简介
    面试题-----求单链表的倒数第k个节点
    面试题---两个有序单链表的合并
    面试题---求一个串中的最大连续递增数字串
    面试题---两个大整数相乘
  • 原文地址:https://www.cnblogs.com/chihirotan/p/5862115.html
Copyright © 2011-2022 走看看