温故知新 三大框架之SpringMVC

SpringMVC是基于Spring功能之上添加的Web框架,想用SpringMVC必须先依赖Spring。

MVC模式的WEB开发框架;

主要核心:前后端数据交互和页面调取显示

Controller层:接受请求  两种结果返回页面/返回数据---------1,类头上注解@Controller

                                                                                                         方法上注解@RequestMapping(value="/XXXXX" ,method=RequestMethod.POST/GET)  //返回为页面(转发/重定向)

                                                                                                         方法上添加注解@ResponseBody    //返回为数据

                                                                                            ,2,类头上注解:@RestController  //返回为数据

 各种注解功能及用法掌握就行了;

这里涉及SOA(面向服务)----减少了业务应用实现的限制,业务伙伴对整个业务系统的影响较低

   在Controller层

           @Autowired

            private XxxService xxxService;

           @Autowired

          private SssService sssService;

  Service层

         @Autowired

          private XxxDao xxxDao;

 

1,:客户端发起请求到前端控制器(DispatcherServlet)

2,:前端控制器请求处理器映射器(HandlerMappering)去查找处理器(Handle):通过xml配置或者注解进行查找

3:找到以后处理器映射器(HandlerMappering)向前端控制器返回执行链(HandlerExecutionChain)

4:前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)去执行处理器(Handler)

5:处理器适配器去执行Handler

6:Handler执行完给处理器适配器返回ModelAndView

7:处理器适配器向前端控制器返回ModelAndView

8:前端控制器请求视图解析器(ViewResolver)去进行解析视图

9:视图解析器像前端控制器返回View

10:前端控制器对视图进行渲染

11:前端控制器向用户响应结果

主要核心:前后端数据交互和页面调取显示

1,读取请求参数  

send(HttpServletRequest request){}
send(@RequestParam("map") Map map){}
send(Entity entity){}

2,传值给页面

//将数据绑定到request
send(
HttpServletRequest request){    
request.setAttribute("AAA", aaa);    
request.setAttribute("BBB", bbb);
}
前段通过${AAA},${BBB}获取数据

3,通过ModelAndView 

public ModelAndView send(Entity entity) {
   Map<String,Object> map = new HashMap<>();
   map.put("a",
entity.getAaa());
map.put("b",entity.getBbb());
   //构造ModelAndView对象
   ModelAndView mav = new ModelAndView("index", map);
   return mav;
}

4.使用Session对象绑定
public String send(Entity entity, HttpSession session) {
session.setAttribute("xxx", entity.getXxx());
return "index";
5,关于转发和重定向
当返回值为String型:
@RequestMapping("/first")
public String login() {
   return "redirect:index.toIndex";
}

@RequestMapping("/toIndex")
public String toIndex() {
   return "index";
}

当返回值为ModelAndView时:
@RequestMapping("/first")
public ModelAndView login() {
   RedirectView rv = new RedirectView("toIndex");
   return new ModelAndView(rw);
}

@RequestMapping("/toIndex")
public String toIndex() {
   return "index";
}






 

 







原文地址:https://www.cnblogs.com/pureray-hui/p/12567382.html