zoukankan      html  css  js  c++  java
  • 温故知新 三大框架之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";
    }






     
    
    
     







  • 相关阅读:
    linux系统下MySQL表名区分大小写问题
    linux下查看Mysql默认编码、修改默认编码
    mysql的下载及安装(windows)
    数据库进阶
    mysql练习
    数据库基础
    jQuery
    JavaScript 基础学习(二)
    344.Reverse String
    计蒜客课程数据结构(顺序表)
  • 原文地址:https://www.cnblogs.com/pureray-hui/p/12567382.html
Copyright © 2011-2022 走看看