简单易懂的SpringMVC原理,了解四个重要组件足以

回忆Servlet

大家肯定都学会Servlet
首先我们来聊聊@WebServlet()
它的作用:用于将一个类声明为 Servlet(不用配置web.xml)
具体:该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为 Servlet。
请问大家@WebServlet("/")和@WebServlet("/*")有什么不同?
有人会说:so easy~
有人会说:一样啊,都是处理所有请求
我来说说看:
1.@WebServlet("/"):是处理除了(.jsp)的其他所有请求,遇到以(.jsp)结尾的请求只显示界面不做处理,但是(.html)等等结尾的请求会做处理。
2.@WebServlet("/*"):是处理除了(.)的其他所有请求,遇到以(.)结尾的请求不显示界面也不做处理。
知道了这个以后,我们来写一个Servlet简单代码
首先建立一个动态WEB工程
简单易懂的SpringMVC原理,了解四个重要组件足以_第1张图片
然后新建一个index.jsp
简单易懂的SpringMVC原理,了解四个重要组件足以_第2张图片
接着新建一个Servlet
简单易懂的SpringMVC原理,了解四个重要组件足以_第3张图片
简单易懂的SpringMVC原理,了解四个重要组件足以_第4张图片
这就是front 前端设计模式

请求
浏览器
front=DispatchServlet
调用具体的方法=demo1
调用具体的方法=demo2
调用具体的方法=demo3
...

这里的front就是和@WebServlet("/")一样的作用

OK啦,引出我们SpringMVC四个重要组件

  1. DispatcherServlet : 前端控制器,接收所有请求(如果配置/不包含jsp)
  2. HandlerMapping: 解析请求格式的.判断希望要执行哪个具体的方法.
  3. HandlerAdapter: 负责调用具体的方法.
  4. ViewResovler:视图解析器.解析结果,准备跳转到具体的物理视图
    对应就是上面的图就是
请求
HandlerMapping
HandlerMapping
HandlerMapping
HandlerMapping
浏览器
DispatchServlet
调用具体的方法=HandlerAdapter
调用具体的方法=HandlerAdapter
调用具体的方法=HandlerAdapter
...
ViewResovler
ViewResovler
ViewResovler
ViewResovler

SpringMVC 运行原理图
简单易懂的SpringMVC原理,了解四个重要组件足以_第5张图片

你可能感兴趣的:(Java)