郑州炫彩网站建设,西宁微信网站建设,竞价点击软件排名,新乡做网站公司电话基本概念
SpringMVC是基于servlet api构造的原始web框架#xff0c;全称是Spring Web MVC
而MVC的全称是Model View Controller#xff0c;翻译成中文分别是“模型”#xff0c;“视图”#xff0c;“控制器”#xff0c;这是一种软件的架构模式
Model#xff1a;用来…基本概念
SpringMVC是基于servlet api构造的原始web框架全称是Spring Web MVC
而MVC的全称是Model View Controller翻译成中文分别是“模型”“视图”“控制器”这是一种软件的架构模式
Model用来处理应用程序的数据逻辑部分在数据库中存取数据View应用程序中处理数据的显示Controller处理用户的交互部分从view获取数据向model发送数据
也就是说当用户向Controller发送HTTP请求时Controller会调用相关的方法将数据传输给Model。然后Model根据数据库中的数据返回给Controller数据Controller调用相关的方法将数据传输给ViewView将数据组织成好看的页面返回给用户
而SpringMVC就是基于上面这种设计模式的一种实现方式用户在浏览器中输入url程序就可以获取用户的需求
程序建立
在之前的博客中我们创建的SpringBoot项目事实上就包含SpringMVC之前引入的Spring Web框架就是SpringMVC
具体创建过程请参考之前的博客SpringBoot的配置与使用
创建程序与连接浏览器
创建一个TestController类实现连接浏览器
Controller
ResponseBody
RequestMapping(/test)
public class TestController {RequestMapping(/hi)public String sayHi(String name){return hi name;}
}其中这几个注解分别有如下的含义
Controller使Spring程序启动时加载这个类ResponseBody返回的是数据而不是页面RequestMapping(url路径)注册url可以修饰类和方法
其中我们可以使用RestController来代替ResponseBody和Controller
这样就可以在下面这个网址下获取页面
http://127.0.0.1:8080/test/hi在url中传输name的值即可在页面上显示出来 使用PostMan可以发现RequestMapping既支持GET请求也支持POST请求 可以给RequestMapping中添加参数使其只接收特定的访问方法
RequestMapping(value url路由,method 访问方法)例如
RestController
RequestMapping(/test)
public class TestController {RequestMapping(value /hi , method RequestMethod.POST)public String sayHi(String name){return hi name;}
}这时使用GET方法访问就会报错
还可以直接使用下面这两个注解直接指定访问方法
GetMapping(url路由)
PostMapping(url路由)获取参数
刚才的name演示了如何用方法中的参数来传参需要注意的是一般数据类型需要使用包装类进行传参这样的话如果该参数前端没有传递的话显示null 例如
GetMapping(/num)
public String getNum(Integer num){return num num;
}如果不使用包装类那么会造成页面直接报错
GetMapping(/num)
public String getNum(int num){return num num;
}获取对象
刚才的name演示了如何用方法中的参数来传参传递对象也是类似的方法
先创建一个User类
Data
public class User {private int id;private String name;private int age;
}然后在方法的参数中直接传递该对象
RequestMapping(/show-user)
public String getUser(User user){return user.toString();
}就可以传递对象中的所有参数了 当需要传输的参数过多就可以使用传输对象的方式避免代码的臃肿
参数重命名
如果前端传输的key值我们觉得不符合代码的规范或者不好听那么可以使用RequestParam进行参数重命名
RequestParam(前端命名) 后端重命名 例如前端将开始时间命名为t1结束时间命名为t2我们后端可以这样重命名
RequestMapping(/show-time)
public String showTime(RequestParam(value t1) String startTime,RequestParam(t2) String endTime){return 开始时间: startTime | 结束时间: endTime;
}当使用了RequestParam注解后这个参数就是必须传输的了如果不传输就会报错 此时可以给RequestParam中添加参数来避免这种情况
RequestParam(required false) 参数获取JSON对象
使用RequestBody可以接收JSON格式的对象
例如
RequestMapping(/show-json-user)
public String showJSONUser(RequestBody User user){return user.toString();
}