3.Spring MVC 4.1-@RequestMapping

翻译 2015年11月19日 21:18:34

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()+" 可以访问此方法";
    }
}

Spring mvc的单例和多例性能

推荐博文:Java单例和多例的性能spring mvc 单例业务类import org.springframework.stereotype.Service;@Service public class...
  • xlxxcc
  • xlxxcc
  • 2016年08月25日 14:36
  • 1741

3.Spring Bean

1.bean
  • qq_16430735
  • qq_16430735
  • 2014年08月27日 12:15
  • 1985

SpringMVC-3 映射请求参数和请求头

Spring MVC通过分析控制器处理方法的签名,将 HTTP请求信息绑定到处理方法的相应人参中。除@PathVariable注解外,SpringMVC还可使用@RequestParam、@Reque...
  • bingbeichen
  • bingbeichen
  • 2017年03月23日 18:26
  • 1208

SpringMVC学习笔记(三) 切面详解

为了更好的理解AOP,先来了解几个AOP的术语。 通知(Advice) 指切面(定义为aspect的类)中的工作; spring切面可以应用的五种通知: 前置通知(Before):在目标方法被调用之前...
  • u013399093
  • u013399093
  • 2017年03月09日 16:37
  • 874

3.spring boot自定义配置

1.示例-添加并配置seucrity 1.1添加依赖 org.springframework.boot spring-boot-starter-security 1.2覆盖配置 A....
  • zhouping118
  • zhouping118
  • 2017年10月26日 13:55
  • 150

3.spring进阶运用

1.配置Bean的属性和依赖关系 注入集合值:使用 分别表示List、Map、Set或者Properties对象 1 2 ...
  • kutim
  • kutim
  • 2015年06月29日 13:27
  • 220

2014-4-1 spring模块组成

核心容器Core Container Core Container由:Core,Beans,Context和Expression Language模块组成。 Core和beans模块提供了框架的基础...
  • huangbin10025
  • huangbin10025
  • 2014年04月01日 21:38
  • 878

3.Spring属性配置细节

1.在配置bean的属性时,可以不写value属性,而使用value子节点的形式。 ]]> 250...
  • a2181745
  • a2181745
  • 2015年01月23日 15:16
  • 174

3.spring IOC、DI 介绍

一.IOC(Inversion[倒置、转化] of Control)控制反转 使一个对象依赖的其他对象通过被动的方式传递进来,而不是对象自己创建或查找依赖对象。 是容器主动将资源传递给它所管理的对...
  • yiguang_820
  • yiguang_820
  • 2017年12月11日 19:43
  • 42

3.Spring Boot Redis

[作者信息] github: https://github.com/MiniPa email: eric.fourpackcn@outlook.com [项目代码:https://github....
  • snsmbnsr
  • snsmbnsr
  • 2018年01月16日 20:34
  • 29
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:3.Spring MVC 4.1-@RequestMapping
举报原因:
原因补充:

(最多只允许输入30个字)