package com.jt.pojo;
import java.io.Serializable;
public class User implements Serializable {
private Integer id;
private String name;
private Integer age;
public User(Integer id,String name){
this.id = id;
this.name = name;
}
public User(){}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.jt.controller;
import com.jt.pojo.User;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/axios")
@CrossOrigin //专门解决跨域问题 允许所有的网址访问
//@CrossOrigin(value = "http://www.jt.com") 只允许www.jt.com网址访问
public class AxiosController {
/**
* http://localhost:8080/axios/findStr
*/
@GetMapping("/findStr")
public String findStr(){
return "再坚持半天!!!";
}
@GetMapping("/getUserById")
public String findUserById(Integer id){
return "获取数据:"+id;
}
/**
* 接收对象参数
* URL: http://localhost:8080/axios/findUser?id=100&name=tomcat
*/
@GetMapping("/findUser")
public User findUser(User user){
return user;
}
/**
* 4.接收restFul的数据
* URL: http://localhost:8080/axios/result/100/tomcat/19
* 返回值: User对象
*/
@GetMapping("/result/{id}/{name}/{age}")
public User result(User user){
return user;
}
/**
* 编辑后端Controller
* URL: /axios/saveUser
* 参数: json串
* {"id":100,"name":"tomcat猫","age":20}
* 返回值: User
* 难点:
* 1.将JSON串转化为Java对象 @RequestBody
* 2.将Java对象转化为JSON串! @ResponseBody
*/
@PostMapping("/saveUser")
public User saveUser(@RequestBody User user){
return user;
}
/**
* URL: http://localhost:8080/user/restFul2/1/王五/18
* RestFul对象接收:
* 如果对象的属性与{key}相同,则可以使用对象接收.
* 用途: restFul结构 一般用于更新操作
* @param user
* @return
*/
@GetMapping("/restFul2/{id}/{name}/{age}")
public User restFul2(User user){
return user;
}
}
package com.jt.controller;
import com.jt.pojo.User;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller //SpringMVC专门扫描的注解
public class HelloController {
@RequestMapping("/hello")
@ResponseBody //返回值JSON串
public String hello(){
//字符串返回本身
return "您好SpringMVC";
}
@RequestMapping("/getUser")
@ResponseBody //{"id":"101","name":"SpringMVC!!"}
public User getUser(){
User user = new User(101,"代码测试");
//user.setId(101);
//user.setName("SpringMVC!!");
//如果是对象则返回JSON
return user;
}
}
package com.jt.controller;
import com.jt.pojo.User;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//类中的方法返回的数据都是JSON
@RestController //等于@Controller+@ResponseBody
@RequestMapping("/user")//定义公共的前缀
public class UserController {
/**
* url:http://localhost:8080/user/findUser?id=100&name=tomcat
* 类型:get请求
* 返回值:String id:name
* 1.Servlet-request对象/response对象
* 2.Servlet中如何取值*/
@RequestMapping("/findUser")
public String findUser(HttpServletRequest req, HttpServletResponse resp){
String id = req.getParameter("id");
int intId = Integer.parseInt(id);
String name = req.getParameter("name");
return intId+":"+name;
}
/**
* URL:http://localhost:8080/user/findUser2?id=100&name=tomcat
* 规则:SpringMVC中的参数名称,必须与传递参数名称一致
* 原理:SpringMVC在内部将Servlet的取值方式包装,用户只需填写参数
* 即可获取数据
* @return
*/
@RequestMapping("/findUser2")
public String findUser2(Integer id, String name){
return id+":"+name;
}
/**
* URL:URL:http://localhost:8080/user/getUser?id=1&name=张三&age=23
* 返回值:id:name:age
* 知识点:
* 当遇到多个参数是,可以使用对象封装
* 要求对象的属性必须与参数名称一致,同时必须有Set/Get方法
* SpringMVC会自动的将参数赋值给对象的属性
* @return
*/
@RequestMapping("/getUser")
public User getUser(User user){
return user;
}
/**
* RestFul结构 动态接收参数
* URL:URL:http://localhost:8080/user/restFul/1/张三
* 返回值:返回User对象
* 难点:需要从URL路径中获取参数
* 语法:
* 1.服务器端参数接收是,变量使用{xx}进行包裹,并且位置固定
* 2.利用@PathVariable注解,动态获取路径中的数据,要求名称必须匹配
*/
@RequestMapping("/restFul/{id}/{name}")
public User restFul(@PathVariable Integer id,
@PathVariable String name){
User user = new User();
user.setId(id);
user.setName(name);
return user;
}
/**
* URL: http://localhost:8080/user/restFul2/1/王五/18
* RestFul对象接收:
* 如果对象的属性与{Key}相同,则可以使用对象接收
* 用途:restFul结构一般用于更新操作
* @param user
* @return
*/
// @RequestMapping("/restFul2/{id}/{name}/{age}")
// @PostMapping("/restFul2/{id}/{name}/{age}") //新增请求
// @DeleteMapping("/restFul2/{id}/{name}/{age}") //删除请求
// @PutMapping("/restFul2/{id}/{name}/{age}") //修改请求
@GetMapping("/restFul2/{id}/{name}/{age}") //查询请求
public User restFul2(User user){
return user;
}
/**
* URL地址: http://localhost:8080/user/saveHobby?hobby=篮球,排球,乒乓球
* 返回值: 参数获取之后返回
* SpringMVC功能:
* 如果url中的参数使用,号的方式连接,则可以自动的转化为数组结构
*/
@GetMapping("/saveHobby")
public String[] saveHobby(String[] hobby){
//String[] arrays = hobby.split(",");
//将字符串转化为数组,可以方便后续业务的调用
//return arrays;
return hobby;
}
}
package com.jt;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringmvcDemo1Application {
public static void main(String[] args) {
SpringApplication.run(SpringmvcDemo1Application.class, args);
}
}