SpringMVC学习,day04

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值