发布于2026-07-21 阅读(0)
扫一扫,手机访问
Spring MVC 在实际开发中非常常见,下面通过几个典型场景,从接口定义到前后端联调,完整走一遍流程。先看一个最简单的加法计算器,再慢慢过渡到用户登录和留言板,逐步加深理解。
calc/sum| 参数名称 | 类型 | 是否必须 |
|---|---|---|
| num1 | Integer | 是 |
| num2 | Integer | 是 |
响应数据:
text/html先看前端静态页面 calc.html:
加法计算器
简易计算器
访问地址:http://127.0.0.1:8080/calc.html
后端接口实现:
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/calc")
public class CalcController {
@RequestMapping("/sum")
public String sum(Integer num1, Integer num2){
Integer total = num1 + num2;
return "计算结果:" + total + "
";
}
}
/user/login| 参数名称 | 类型 | 是否必须 |
|---|---|---|
| username | String | 是 |
| password | String | 是 |
响应数据:
text/htmltrue //验证成功false //验证失败/user/getLoginUser响应数据:
text/htmlimport jakarta.servlet.http.HttpSession;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/user")
public class LoginController {
// 登录校验接口
@RequestMapping("/login")
public boolean login(String userName, String password, HttpSession session){
// 判断账号密码是否为空
if(!StringUtils.hasLength(userName) || !StringUtils.hasLength(password)){
return false;
}
// 模拟数据库账号密码
if("zhangsan".equals(userName) && "123456".equals(password)){
// 登录成功,存入session
session.setAttribute("loginUser", userName);
return true;
}
return false;
}
// 获取当前登录用户
@RequestMapping("/getLoginUser")
public String getLoginUser(HttpSession session){
// getSession(false):无会话不创建新session
String user = (String) session.getAttribute("loginUser");
return user == null ? "" : user;
}
}
注意:
equal()里,防止空指针异常:"admin".equals(username)采用 AJAX 实现异步请求,在不重新加载整个页面的情况下与服务器交换数据。
login.html
用户登录
用户名: 密码:
index.html
登录人:
先引入 Lombok 依赖,它能在编译期自动生成 getter、setter、toString 等方法,大大减少样板代码:
org.projectlombok lombok true
常用注解及作用:
| 注解 | 作用 |
|---|---|
| @Data | 综合注解:自动生成getter、setter、toString、equals、hashCode、无参构造 |
| @Getter/@Setter | 单独生成get/set方法 |
| @NoArgsConstructor | 无参构造方法 |
| @AllArgsConstructor | 全参构造方法 |
| @NonNull | 属性非空校验 |
注意:
@Data = @Getter+@Setter+toString()+equals()+hashCode()@Data生成的内容非常多,如果只需要部分方法,可以用更具体的注解@Getter/@Setter既是类注解也是属性注解:放在类上对所有属性生效,放在属性上只对该属性生效
/message/getListContent-Type: application/json/message/publishok:0 //发布失败ok:1 //发布成功从加法计算器到用户登录,再到留言板,这三个案例覆盖了 Spring MVC 开发中最常见的场景:参数接收、表单提交、Session 管理、AJAX 交互、JSON 响应以及 Lombok 工具的使用。理解这些基础模式后,很多复杂业务都可以在此基础上扩展。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8