SpringMVC入门


Spring MVC(Model-View-Controller,模型-视图-控制器)是一个基于Java的Web应用程序框架,它实现了MVC设计模式。作为Spring框架的一部分,Spring MVC旨在简化基于Java的Web开发,并提供灵活、可扩展的解决方案。Spring MVC的主要特点包括:

分层架构:Spring MVC将应用程序分为模型(Model)、视图(View)和控制器(Controller)三个层次,有助于实现代码的解耦和可维护性。

控制器:Spring MVC的控制器负责处理用户请求,并将其分发到合适的处理程序。控制器通常使用注解来定义处理请求的方法,并将方法映射到特定的URL。

数据绑定和验证:Spring MVC提供了数据绑定和验证的功能,可以将用户输入的数据自动绑定到Java对象,并进行验证。这简化了处理表单提交的过程,提高了开发效率。

视图解析:视图解析器是Spring MVC的一个重要组件,它负责根据控制器的返回值找到合适的视图并渲染。Spring MVC支持多种视图技术,如JSP、Thymeleaf、FreeMarker等。

插件式架构:Spring MVC支持插件式的架构,可以轻松地扩展和集成其他技术。例如,可以通过集成Spring Security来实现应用程序的安全性。

高度可定制:Spring MVC提供了丰富的扩展点,可以定制请求处理、数据绑定、视图解析等功能,以满足特定需求。

总之,Spring MVC是一个功能强大、高度可定制的Web应用程序框架。它将应用程序分为模型、视图和控制器三个层次,有助于实现代码的解耦和可维护性。通过使用Spring MVC,开发者可以更轻松地构建和维护基于Java的Web应用程序。

一、准备环境

导入对应的依赖
使用SpringMVC技术需要线导入SpringMVC坐标与Servlet坐标
在这里插入图片描述

二、定义一个测试类

package com.itheima.controller;

import com.itheima.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("user")
public class UserController {
    @RequestMapping(value = "/save", method = RequestMethod.GET)        //设置访问路径
    @ResponseBody       //设置当前返回值类型
        public String save(){
            System.out.println("user save ...");
            return "{'module:springmvc'}";
        }

    @RequestMapping("getName")
    @ResponseBody
    public User getName(@RequestParam("name") String name, int age){     //接收参数直接把形参和请求的参数名一致
                        //@RequestParam("name")用于绑定参数,如果参数和形参一样就不需要写
        System.out.println(name +"===>"+ age);
        User user =  new User(name,age);
        return user;//响应json数据要先导入jackson-databind这个包,然后在spring配置文件中配置@EnableWebMvc       //开启自动转换前端传递的json数据
            //最后直接返回对象集合即可
    }
}

@ResponseBody 就是把方法返回的内容整体响应到外面

三、定义一个SpringMVC配置类

//springmvc的配置文件,加载controller对应的bean
@Configuration      //表明当前类是一个配置类
@ComponentScan("com.itheima")         //扫描包名
public class SpringConfig {

}

四、定义一个servlet容器启动的配置类,在里面加载spring配置

package com.itheima.config;

import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.support.AbstractDispatcherServletInitializer;
//定义一个servlet容器启动的配置类,在里面加载spring配置
public class ServletControllersinitConfig extends AbstractDispatcherServletInitializer {

    //加载springMVC容器
    protected WebApplicationContext createServletApplicationContext() {
        AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
        context.register(SpringConfig.class);
        return context;
    }
    //设置那些请求归属springMVC处理
    protected String[] getServletMappings() {
        return new String[]{"/"};       //所有请求都交给springmvc处理
    }
    //加载spring容器配置
    protected WebApplicationContext createRootApplicationContext() {
        return null;
    }
}

五、测试

打开postman填写请求地址发送请求,成功得到返回值
测试GET请求
在这里插入图片描述
测试POST请求,需要再spring配置文件中配置@EnableWebMvc 开启自动转换,将前端传递的json数据转为对象
在这里插入图片描述

六、注意事项

出现以下报错不用管
这个错误是java版本不对引起的,我本地用的jdk8,module-info.class这个包不支持jdk8
在这里插入图片描述

还有一个问题就是popstman请求以后拿不到结果,控制台会打印一条警告,但是浏览器访问可以正常拿到结果
这个问题是因为本地开了 代理导致的
在这里插入图片描述
在这里插入图片描述
要想解决这个问题很简单
1.打开设置
在这里插入图片描述
2.找到proxy选项,取消勾选代理
在这里插入图片描述
3.再次测试,成功拿到结果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亦简_yz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值