温故知新 三大框架之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";
}






 

 







 

posted @   唯恐不及  阅读(163)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示