SpringMVC总结

SpringMVC的本质是一个Servlet,Servlet的运行需要一个Servlet容器,如常用的Tomcat
Servlet容器帮我们统一做了像底层Socket连接那种通用但又很麻烦的工作,让我们开发网站程序变得简单,只需要按照Servlet的接口去做就可以了,而SpringMVC又在此基础上提供了一套通用的解决方案,这样我们边Servlet都不用写了,而只需要写最核心的烅就可以了

为了更好的理解SpringMVC,我们以Tomcat为例分析Servlet容器的结构和原理,Tomcat可以分为两大部分:连接器Connector和容器Container,连接器专门用于处理网络连接相关的事情,如Socket连接、request封装、连接线程池维护等工作,容器用来存放我们编写的网站程序。
Tomcat中一共有4层窗口:Engine、Host、Context和Wrapper
一个Wrapper对应一个Servlet
一个Context对应一个应用
一个Host对应一个站点
Engine是引擎一个容器只有一个。
Context和Host的区别是Host代表站点,如不同的域名,而Context表示一个应用
比如,默认情况下webapps\ROOT中存放的为主应用,对应一个站点的根据路径,如www.baidu.com。webapps下别的目录则存放别的子应用,对应站点的子路径,如webapps/test目录存放着www.baidu.com/test应用,而所有webapps下的应用属于同一个站点,它们每一个都对应一个Context,如果想添加一个新站点,则需要使用Host。
一套容器和多个连接器组成一个Service,一个Tomcat中可以有多个Service

Servlet接口一共定义了5个方法,其中init方法和destroy用于初始化和销毁Servlet
整个生命周期中只会被调用一次;service方法实际处理请求;getServletConfig方法返回ServletConfig;getServletInfo方法可以获取到一些Servlet相关的信息,如作者、版权等需要自己实现,默认返回空字符串

Java提供了两个Servlet的实现类:GenericServlet和HttpServlet
GenericServlet主要做了三件事:
1.实现了ServletConfig接口,让我们可以直接调用ServletConfig中的方法
2.提供了无参的init方法;
3.提供了log方法
HttpServlet主要做了两件事
1.将ServletRequest和ServletResponse转换为HttpServletRequest和HttpServletResponse
2.根据Http请求类型(GET,POST) 将请求路由到了7个不同的处理方法

SpringMVC本质是个Servlet,这个Servlet继承自HttpServlet,SpringMVC中提供了三个Servlet:HttpServletBean、FrameworkServlet和DispatcherServlet,它们相互继承,DispatcherServlet->FrameworkServlet->HttpServletBean->HttpServlet->GenericServlet->Servlet,ServletConfig
HttpServletBean用于将Servlet中配置的参数设置到相应的属性中
FrameworkServlet初始化了SpringMVC中所使用的WebApplicationContext,
具体处理请求的9大组件是在DispatcherServlet中初始化的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值