对于Servlet的抽取之Servlet的结构体系

对于Servlet的抽取之Servlet的结构体系

前言:讲servlet结构体系是为了说对于Servlet方法的抽取:对于没有学框架的可以尝试对Servlet的抽取,我对于一个servlet一个方法有着很大的头疼病~我们可以尝试分一分类,将一系列的方法封装在一个servlet里面,并利用多态,反射将对应的方法调用,其实很类似Spring MVC中核心类DispatcherServlet的功能(肯定是不一样的,但是实现思路可以借鉴)
首先我们要抽取servlet方法先了解servlet的结构体系
Servlet(interface)->GenericServlet(抽象类)->HttpServlet
对应的各个类里面怎样实现的,这个可以去看看源码,并不是很难

  • ①GenericServlet是一个抽象类他把初始化(init())销毁(destroy())等这些方法做空,并把服务service方法做成抽象方法。(如图为GenericServlet的底层源码)

     ![在这里插入图片描述](https://img-blog.csdnimg.cn/20201225174102755.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNTczNjY3,size_16,color_FFFFFF,t_70)
    

在这里插入图片描述
在这里插入图片描述

  • ②HttpServlet这个源码大概主要是既重写了service()方法并且重载了一个service私有方法,通过请求HttpServletRequest (简称req) req,getMethod()得到请求方式(有七种,最常用的就是get请求post请求)然后再去调用对应的doget(),dopost()方法等(如图为HttpServlet底层源码)
    七种请求方式
    两个service方法
    doget()
    我们创建一个完整的servlet只需要重写deget(),dopost()方法就可以了
    并在web.xml中配置servle
    在这里插入图片描述
    大概就是映射一个虚拟名,然后tomcat通过全类名()反射机制找到你的类然后执行-这就是servlet的生命周期的问题了,执行哪不执行哪我会单独写一份,姑且先认为是执行service方法(对于init初始化执行可以在web.xml里面配置)
    如果我们servlet是3.0以上的我们完全可以偷懒,通过注解annotation(后期会补上注解,泛型)
    通过配置@WebServlet("/demo")
    根配置文件web,xml的作用相同(必须是servlet3.0以上的才可以)
    在这里插入图片描述
  • 下节我们来写对于servlet的方法的封装-类似SpringMVC中的DispatcherServlet思想(并不是相同,只是借鉴他的一个小思想)
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值