温故知新 三大框架之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";
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现