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