springmvc的使用方法及运行原理

        Spring MVC 是 Spring 框架中用于开发 Web 应用程序的一部分,它基于 MVC(Model-View-Controller)设计模式,提供了一种灵活且强大的方式来构建 Web 应用。

运行原理:

  1. 客户端发送请求:浏览器向服务器发送 HTTP 请求。
  2. 前端控制器(DispatcherServlet)接收请求:Spring MVC 中的 DispatcherServlet 充当前端控制器的角色,它接收所有客户端请求。
  3. 处理器映射器(HandlerMapping)找到处理器:DispatcherServlet 使用处理器映射器来确定请求对应的处理器(Controller)。
  4. 处理器执行请求:处理器执行请求并调用适当的业务逻辑。
  5. 模型数据处理:处理器将处理结果存储在模型中,可以包含要在视图中显示的数据。
  6. 视图解析器找到视图:DispatcherServlet 使用视图解析器来确定要渲染的视图。
  7. 视图渲染:视图负责将模型数据渲染为最终的输出(HTML、JSON 等)。
  8. 响应返回给客户端:渲染的视图作为 HTTP 响应返回给客户端,显示在浏览器中。

使用方法:

  1. 配置 DispatcherServlet:在 web.xml 文件中配置 DispatcherServlet,并指定 Spring MVC 的配置文件。
  2. 编写 Controller:创建处理请求的 Controller 类,使用注解标记该类和方法。
  3. 配置 HandlerMapping:配置 HandlerMapping 将请求映射到对应的 Controller。
  4. 编写视图:创建视图模板(JSP、Thymeleaf 等)用于渲染页面。
  5. 配置 ViewResolver:配置 ViewResolver 将逻辑视图名称解析为实际视图。
  6. 处理请求和响应:在 Controller 中编写处理请求的方法,并返回相应的数据或视图。
  7. 使用注解:使用@Controller、@RequestMapping 等注解简化开发。

        Spring MVC 提供了丰富的注解,可以帮助开发人员简化代码结构并提高开发效率。下面详细介绍一些常用的 Spring MVC 注解:

常用注解:

  • @Controller:用于标识一个类是 Spring MVC 的 Controller,处理用户请求并返回相应的视图。

    import org.springframework.stereotype.Controller;
    
    // 用于标识一个类是 Spring MVC 的 Controller,处理用户请求并返回相应的视图
    @Controller
    public class MyController {
        // Controller 类的具体实现
    }
    
  • @RequestMapping:用于映射 HTTP 请求到处理器方法,可用在类或方法上,指定处理的 URL 路径。

    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    
    // 用于映射 HTTP 请求到处理器方法,可用在类或方法上,指定处理的 URL 路径
    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    public String hello() {
        // 方法的具体实现
    }
    
  • @RequestParam:用于获取请求参数的值,可以指定参数名、是否必需等。

    import org.springframework.web.bind.annotation.RequestParam;
    
    // 用于获取请求参数的值,可以指定参数名、是否必需等
    public String myMethod(@RequestParam("name") String name) {
        // 方法的具体实现
    }
    
  • @PathVariable:用于将 URL 中的模板变量映射到方法参数。

    import org.springframework.web.bind.annotation.PathVariable;
    
    // 用于将 URL 中的模板变量映射到方法参数
    @RequestMapping(value = "/user/{id}", method = RequestMethod.GET)
    public String getUser(@PathVariable("id") Long id) {
        // 方法的具体实现
    }
    
  • @ResponseBody:用于将方法的返回值直接写入 HTTP 响应体中,通常用于返回 JSON 或 XML 数据。

    import org.springframework.web.bind.annotation.ResponseBody;
    
    // 用于将方法的返回值直接写入 HTTP 响应体中,通常用于返回 JSON 或 XML 数据
    @ResponseBody
    @RequestMapping(value = "/user/{id}", method = RequestMethod.GET)
    public User getUser(@PathVariable("id") Long id) {
        // 返回一个 User 对象,将会被转换成 JSON 或 XML 数据
    }
    
  • @ModelAttribute:用于将方法的返回值添加到模型中,供视图渲染使用。

    import org.springframework.web.bind.annotation.ModelAttribute;
    
    // 用于将方法的返回值添加到模型中,供视图渲染使用
    @ModelAttribute
    public void addAttributes(Model model) {
        // 将属性添加到模型中
    }
    
  • @SessionAttributes:用于指定模型属性存储在会话中,跨请求访问。

    import org.springframework.web.bind.annotation.SessionAttributes;
    
    // 用于指定模型属性存储在会话中,跨请求访问
    @SessionAttributes("myAttribute")
    public class MyController {
        // Controller 类的具体实现
    }
    
  • @Valid@Validated:用于验证请求参数,配合 JSR-303(Bean Validation)使用

  • 22
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值