springMVC

@RequestMapping

用于指定接口路径的

@RequestController

Spring会对所有的类进⾏扫描, 如果类加了注解@RestController, Spring才会去看这个类⾥⾯的⽅法有没有加 @RequestMapping 这个注解,
@RequestMapping("/user")
@RestController
public class UserController {
 @RequestMapping("/sayHi")
 public String sayHi(){
 return "hello,Spring MVC";
 }
}

@RequestParam

用于参数重命名的

@RequestMapping("/m4")
public Object method_4(@RequestParam(value = "time",required=false) String createtime){
    return "接收到参数createtime:" + createtime;
}

@RequestBody

配合json使用

RequestBody: 请求正⽂,意思是这个注解作⽤在请求正⽂的数据绑定,请求参数必须在写在请求正⽂中
@RequestMapping(value = "/m7")
public Object method7(@RequestBody Person person) {
    return person.toString();
}

@PathVariable

和字⾯表达的意思⼀样, 这个注解主要作⽤在请求URL路径上的数据绑定
@RequestMapping("/m8/{id}/{name}")
public String method8(@PathVariable Integer id, @PathVariable("name") String use
    return "解析参数id:"+id+",name:"+userName;
}

@RequestPart

上传文件

@RequestMapping("/m9")
public String getfile(@RequestPart("file") MultipartFile file) throws IOExceptio
    //获取⽂件名称
    String fileName = file.getOriginalFilename();
    //⽂件上传到指定路径
    file.transferTo(new File("D:/temp/" + file.getOriginalFilename()));
    return "接收到⽂件名称为: "+fileName;
}

@CookieValue

传统的获取cookies的方法

@RequestMapping("/m10")
public String method10(HttpServletRequest request,HttpServletResponse response) 
    // 获取所有 cookie 信息
    Cookie[] cookies = request.getCookies();
    //打印Cookie信息
    StringBuilder builder = new StringBuilder();
    if (cookies!=null){
    for (Cookie ck:cookies) {
    builder.append(ck.getName()+":"+ck.getValue());
        }
    }
     return "Cookie信息:"+builder;
}

使用注解的方法

@RequestMapping("/getCookie")
public String cookie(@CookieValue("bite") String bite) {
    return "bite:" + bite;
}

@SessionAttribute

存储session,用HttpServletRequest

@RequestMapping("/setSess")
public String setsess(HttpServletRequest request) {
    // 获取Session对象
    HttpSession session = request.getSession();
    if (session != null) {
    session.setAttribute("username", "java");
    }
    return "session 存储成功";
}

读取session,传统方法

@RequestMapping("/getSess")
public String sess(HttpServletRequest request) {
    // 如果 session 不存在, 不会⾃动创建
    HttpSession session = request.getSession(false);
    String username = null;
    if (session != null && session.getAttribute("username") != null) {
    username = (String) session.getAttribute("username");
    }
    return "username:" + username;
}

使用注解

@RequestMapping("/getSess2")
public String sess2(@SessionAttribute(value = "username",required = false) String username
    return "username:"+username;
}

将传统方法简化,直接把HttpSession作为参数传入

@RequestMapping("/getSess3")
public String sess3(HttpSession session) {
    String username = (String)session.getAttribute("username");
    return "username:"+username;
}

@RequestHeader

获取报头

传统方法

@RequestMapping("/param10")
public String param10(HttpServletRequest request, HttpServletResponse response) 
    String userAgent = request.getHeader("User-Agent");
    return name + ":"+userAgent;
}

注解方法

@RequestMapping("/header")
public String header(@RequestHeader("User-Agent") String userAgent) {
    return "userAgent:"+userAgent;
}

@Controller

@RestController返回的是数据

@RestController = @Controller + @ResponseBody
@Controller : 定义⼀个控制器, Spring 框架启动时加载, 把这个对象交给Spring管理
@ResponseBody : 定义返回的数据格式为⾮视图, 返回⼀个 text/html 信息
返回网页
@Controller
public class IndexController {
    @RequestMapping("/index")
    public Object index(){
    return "/index.html";
    }
}

返回数据

@Controller
@ResponseBody
public class IndexController {
    @RequestMapping("/index")
    public Object index(){
    return "/index.html";
    }
}

@ResponseBody既是类注解,又是方法注解

@Controller
public class IndexController {
    @RequestMapping("/index")
    public Object index(){
    return "/index.html";
}

@RequestMapping("/returnData")
@ResponseBody
public String returnData(){
    return "该⽅法返回数据";
    }
}

返回html数据

@RequestMapping("/returnHtml")
@ResponseBody
public String returnHtml() {
    return "<h1>Hello,HTML~</h1>";
}

返回json

@RequestMapping("/returnJson")
@ResponseBody
public HashMap<String, String> returnJson() {
    HashMap<String, String> map = new HashMap<>();
    map.put("Java", "Java Value");
    map.put("MySQL", "MySQL Value");
    map.put("Redis", "Redis Value");
    return map;
}

设置状态码

@RequestMapping(value = "/setStatus")
@ResponseBody
public String setStatus(HttpServletResponse response) {
    response.setStatus(401);
    return "设置状态码成功";
}

设置Content-Type

@RequestMapping(value = "/returnJson2",produces = "application/json")
@ResponseBody
public String returnJson2() {
    return "{\"success\":true}";
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值