商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Java后端三层架构怎么理解?MVC模式与三层架构的区别是什么?

Java后端三层架构怎么理解?MVC模式与三层架构的区别是什么?

  发布于2026-07-21 阅读(0)

扫一扫,手机访问

一、Spring MVC 综合案例

Spring MVC 在实际开发中非常常见,下面通过几个典型场景,从接口定义到前后端联调,完整走一遍流程。先看一个最简单的加法计算器,再慢慢过渡到用户登录和留言板,逐步加深理解。

1. 案例一:加法计算器

接口定义

  • 功能:两数相加。
  • 路径:calc/sum
  • 参数:
参数名称类型是否必须
num1Integer
num2Integer

响应数据:

  • contentType:text/html
  • 响应内容:计算结果:ans

代码实现

先看前端静态页面 calc.html




    
    加法计算器


    

简易计算器

数字1: 数字2:

访问地址: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 + "

"; } }

2. 案例二:用户登录系统

接口定义

1. 检验用户信息
  • 功能:检验账号密码是否正确。
  • 路径:/user/login
  • 请求方式:POST
  • 参数:
参数名称类型是否必须
usernameString
passwordString

响应数据:

  • contentType:text/html
  • 响应内容:
    • true //验证成功
    • false //验证失败
2. 查询登录用户
  • 功能:查询当前登录的用户
  • 请求路径:/user/getLoginUser
  • 请求方式:GET
  • 请求参数:无

响应数据:

  • contentType:text/html
  • 响应内容:admin

后端

import 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;
    }
}

注意:

  1. 代码要尽量减少嵌套,增加可读性
  2. 判断两个字符串是否相等的时候要把常量写在前面,变量写在equal()里,防止空指针异常:"admin".equals(username)

前端

采用 AJAX 实现异步请求,在不重新加载整个页面的情况下与服务器交换数据。

login.html

  
  
  

用户登录

用户名: 密码:

index.html

  
    登录人: 

3. 案例三:留言板

Lombok

先引入 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既是类注解也是属性注解:放在类上对所有属性生效,放在属性上只对该属性生效

Ja va后端三层架构怎么理解?MVC模式与三层架构的区别是什么?

接口设计

1. 获取全部留言
  • 请求方式:GET
  • 请求路径:/message/getList
  • 响应数据:
    • Content-Type: application/json
    • 类型:JSON
2. 发送留言
  • 请求方式:POST
  • 请求路径:/message/publish
  • 响应数据:JSON格式
    • 响应内容:
      • ok:0 //发布失败
      • ok:1 //发布成功

总结

从加法计算器到用户登录,再到留言板,这三个案例覆盖了 Spring MVC 开发中最常见的场景:参数接收、表单提交、Session 管理、AJAX 交互、JSON 响应以及 Lombok 工具的使用。理解这些基础模式后,很多复杂业务都可以在此基础上扩展。

本文转载于:https://www.jb51.net/program/3677483xn.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注