各位程序猿 / 媛们好啊~今天咱来唠唠 SpringMVC 架构这玩意儿,别被 “架构” 俩字吓着,咱用干饭人的思维拆解它,保准比你点奶茶还容易懂
目录
一、先给 SpringMVC 把个脉 —— 它到底是个啥?
二、核心组件拆解:看看这些家伙都在摸鱼还是干活?
1. 前台接待:DispatcherServlet(♀️)
2. 菜单管理员:HandlerMapping()
3. 金牌厨师:Controller()
4. 配菜小弟:Model()
5. 摆盘大师:View(️)
三、工作流程揭秘:从点外卖到收快递的全流程
四、实战小案例:手把手教你炒一盘 “Hello World”
1. 搭架子(配置文件)
2. 写个厨师(Controller)
3. 准备盘子(JSP 视图)
4. 启动服务器开吃!
五、大佬秘籍:这些坑别踩!
路径匹配玄学:
视图解析器迷路:
参数接收陷阱:
六、总结:学会 SpringMVC 能干嘛?
假设你走进一家名为 “Java 帝国” 的网红餐厅,SpringMVC 就是这家店的智能点餐系统:
这一套流程下来,比你对象给你剥虾还顺滑~而 SpringMVC 就是帮你把这堆事儿自动化的 “餐厅经理”
这玩意儿是整个系统的入口,就像餐厅门口那个永远说 “里边请” 的小姐姐。不管你点宫保鸡丁还是鱼香肉丝,先找她登记。在代码里长这样:
dispatcher
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
/WEB-INF/springmvc.xml
1
这位老哥手里有本超级菜单,记录着 “宫保鸡丁对应 3 号厨师”“鱼香肉丝对应 5 号厨师”。在 SpringMVC 里,就是根据 URL 找对应的 Controller:
// 相当于在菜单里写:访问"/user"就找UserController
@Controller
@RequestMapping("/user")
public class UserController {
@GetMapping("/get")
public String getUser() {
// 处理逻辑...
return "userView"; // 返回视图名
}
}
真正干活的主力!接到前台的订单后,一顿操作猛如虎:
厨师炒菜时需要啥土豆丝、胡萝卜丁,都由 Model 提供。它就像个食材篮子,把数据装好了递给厨师:
@GetMapping("/order")
public String order(Model model) {
List foodList = new ArrayList<>();
foodList.add("宫保鸡丁");
foodList.add("鱼香肉丝");
model.addAttribute("foods", foodList); // 往篮子里放食材
return "orderPage"; // 去装盘上菜
}
菜炒好了得装盘吧?View 就是负责把数据变成你能看懂的样子:
整个过程就像你点外卖时:下单→商家接单→厨师做菜→骑手配送,一气呵成~
先在 pom.xml 里加调料包:
org.springframework
spring-webmvc
5.3.22
javax.servlet
javax.servlet-api
4.0.1
provided
@Controller
public class HelloController {
@GetMapping("/hello")
public String hello(Model model) {
model.addAttribute("message", "Hello SpringMVC!这道菜真香~");
return "hello"; // 对应hello.jsp视图
}
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
干饭人餐厅
${message}
这是用SpringMVC炒的第一道菜~
访问http://localhost:8080/hello,你会看到页面上飘来一句:“Hello SpringMVC!这道菜真香~”
记得在 springmvc.xml 里配置:
不然 Controller 说 “上 hello 菜”,视图解析器会懵圈:“hello 是个啥?”
前端传 userName 参数,Controller 里要写:
@GetMapping("/user")
public String getUser(@RequestParam("userName") String name) {
// ...
}
不然参数对不上,就像你点微辣结果给你上特辣,直接辣哭!
最后送大家一句口诀:
“DispatcherServlet 是前台,HandlerMapping 找菜单,
Controller 炒菜香,Model 配菜忙,View 装盘亮堂堂~”
赶紧操练起来,下次同事问你 SpringMVC 是啥,你就甩给他这篇文章:“自己看去,比外卖还容易懂!”