• 02点睛Spring MVC 4.1-@RequestMapping


    转发地址:https://www.iteye.com/blog/wiselyman-2213907

    2.1 @RequestMapping

    • @RequestMapping是SpringMVC的核心注解,负责访问的url与调用方法之间的映射;
    • @RequestMapping可以放在类和方法上;
      • @RequestMapping的属性produces属性控制response返回的形式;
      • @RequestMapping的属性method属性控制接受访问的类型,不写不做限制,本例为演示方便全部都是get请求;
    • @ResponseBody(放在方法上或者返回值类型前)将方法参数放置在web body的body中(返回的不是页面而是你所控制的字符)
    • @RequestBody(放在方法参数前)将方法参数放置在web request的body中(如提交一个json对象作为参数-在03点睛Spring MVC 4.1-REST演示)
    • produces的内容是指定返回的媒体类型让浏览器识别
      • 如返回text/plain的话,chrome浏览器下network显示Response的Content-Type:text/plain;
      • 如返回application/json的话,chrome浏览器下network显示Response的application/json;
      • 因本节无页面,在03点睛Spring MVC 4.1-REST有只管的阐述和演示;
    • 这节使用@RequestMapping演示常用映射场景

    2.2 演示

    • 传值对象
    package com.wisely.web;
    
    public class DemoObj {
        private Long id;
        private String name;
    
        public DemoObj() {
            super();
        }
    
        public DemoObj(Long id, String name) {
            super();
            this.id = id;
            this.name = name;
        }
        public Long getId() {
            return id;
        }
        public void setId(Long id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    
    }
    
    • 控制器 TestController
    package com.wisely.web;
    
    import javax.servlet.http.HttpServletRequest;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    @Controller //声明为控制器bean
    @RequestMapping("/test")// 根地址为http://localhost:8080/testSpringMVC/test
    public class TestController {
        //response媒体类型(MediaType)为text/plain,编码是utf-8
        @RequestMapping(produces = "text/plain;charset=UTF-8")
        //映射地址为http://localhost:8080/testSpringMVC/test
        @ResponseBody //此注解让返回值不是页面,也是将结果字符串直接返回
        public  String root(HttpServletRequest request){
            return "url:"+request.getRequestURL()+" 可以访问此方法";
        }
    
        @RequestMapping(value = "/add",produces = "text/plain;charset=UTF-8")
        //映射地址为http://localhost:8080/testSpringMVC/test/add
        @ResponseBody
        public   String add(HttpServletRequest request){
            return "url:"+request.getRequestURL()+" 可以访问此方法";
        }
    
        @RequestMapping(value = {"/remove","/delete"},produces = "text/plain;charset=UTF-8")
        //映射地址为http://.../test/remove(或http://.../test/delete)
        @ResponseBody
        public   String remove(HttpServletRequest request){
            return "url:"+request.getRequestURL()+" 可以访问此方法";
        }
    
        //获取request参数
        //获取路径参数
        @RequestMapping(value = "/get",produces = "text/plain;charset=UTF-8")
        //映射路径http://.../test/get?id=123
        @ResponseBody
        public String passRequestParam(@RequestParam Long id,HttpServletRequest request){
            System.out.println("id为"+id);
            return "url:"+request.getRequestURL()+" 可以访问此方法";
    
        }
    
    
        //获取路径参数
        @RequestMapping(value = "/{id}",produces = "text/plain;charset=UTF-8")
        //映射路径http://.../test/123
        @ResponseBody
        public String passPathVariable(@PathVariable Long id,HttpServletRequest request){
            System.out.println("id为"+id);
            return "url:"+request.getRequestURL()+" 可以访问此方法";
    
        }
    
        //获得对象
        @RequestMapping(value = "/pass",produces = "text/plain;charset=UTF-8")
        //映射路径http://.../test/pass?id=123&name=wyf
        @ResponseBody
        public String passObj(DemoObj obj,HttpServletRequest request){
            System.out.println("对象的id和名称分别为为:"+obj.getId()+"/"+obj.getName());
            return "url:"+request.getRequestURL()+" 可以访问此方法";
    
        }
    
    
    
    
    }
  • 相关阅读:
    linux下实现nginx反向代理
    linux下实现nginx安装实现端口区分,域名区分
    redis整合spring
    linux下安装redis以及redis集群
    Kindeditor编辑器
    ActiveMQ
    redis(保存邮件激活码)
    AngularJS (验证码倒计时)
    linux部署项目(oracle+redis+activeMQ+elasticSearch+tomcat+JDK8)
    WebService
  • 原文地址:https://www.cnblogs.com/Jeely/p/11950194.html
Copyright © 2020-2023  润新知