手写实现springmvc,揭开springmvc神秘的面纱
首先来看一下springmvc的整体流程:⑴ 用户发送请求至前端控制器DispatcherServlet⑵ DispatcherServlet收到请求调用HandlerMapping处理器映射器。⑶ 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 ⑷ DispatcherServlet通过H...
首先来看一下springmvc的整体流程:
⑴ 用户发送请求至前端控制器DispatcherServlet
⑵ DispatcherServlet收到请求调用HandlerMapping处理器映射器。
⑶ 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
⑷ DispatcherServlet通过HandlerAdapter处理器适配器调用处理器
⑸ 执行处理器(Controller,也叫后端控制器)。
⑹ Controller执行完成返回ModelAndView
⑺ HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet
⑻ DispatcherServlet将ModelAndView传给ViewReslover视图解析器
⑼ ViewReslover解析后返回具体View
⑽ DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。
⑾ DispatcherServlet响应用户。
废话不多说,代码撸起来
目录结构如下:
web.xml如下:
既然时简单实现,咱的配置文件也是从简
web.xml和配置文件都配好了以后,咱们kai'shi撸代码
通常咱们写一个Controller如下:
spring提供很多注解比如:
@Controller
@Autowirted
@RequestMapping("/demo")
相信大家把ioc已经倒背如流,这些注解的使用也是炉火纯青了,在此不再废话,不过,在此咱们得声明一下,这些注解都是咱自己的,并非spring的,何以见得呢?请看看咱们的pom.xml:
整个项目中就引了一个HttpServlet,并没有spring的任何身影。
下面看看咱们的注解:
做了那么多准备工作,接下来进行真正的核心操作:
以上为继承HttpServlet,并实现doGet,doPost,init等方法
field.setAccessible(true);设置允许访问私有属性
更多推荐
所有评论(0)