
SpringMVC原理圖
描述:
- 用戶發(fā)送請求至前端控制器DispatcherServlet。
- DispatcherServlet收到請求調(diào)用HandlerMapping處理器映射器。
- HandlerMapping找到具體的處理器(可以根據(jù)xml配置.注解進(jìn)行查找),生成處理器對象及處理器攔截器(如果有則生成)一并返回給DispatcherServlet。
- DispatcherServlet調(diào)用HandlerAdapter處理器適配器。
- HandlerAdapter經(jīng)過適配調(diào)用具體的處理器(Controller,也叫后端控制器)。
- Controller執(zhí)行完成返回ModelAndView。
- HandlerAdapter將controller執(zhí)行結(jié)果ModelAndView返回給DispatcherServlet。
- DispatcherServlet將ModelAndView傳給ViewReslover視圖解析器。
- ViewReslover解析后返回具體View。
- DispatcherServlet根據(jù)View進(jìn)行渲染視圖(即將模型數(shù)據(jù)填充至視圖中)。
- DispatcherServlet響應(yīng)用戶。
Controller示例:
@Controller
@RequestMapping(value = "/Test/*")
public class TestController {
@Resource
private PersonInfoService personInfoService;
@RequestMapping(value = "returnSuccess")
public String returnSuccess() {
return "success"; //success.jsp
}
@RequestMapping(value = "getPersonInfo")
public ModelAndView getPersonInfo(@RequestParam("id") int id) {
PersonInfo personInfo = personInfoService.getPersonInfo(id); // 數(shù)據(jù)庫查詢
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("personInfo", personInfo);
modelAndView.setViewName("personInfoView"); //personInfoView.jsp
return modelAndView;
}
}