1.用法

SpringMVC使用@RequestMapping注解,为控制器指定可以处理哪些URL请求,并且可以指定处理请求的类型(POST/GET),如果@RequestMapping没有指定请求的方式,那么代表这个方法可以同时处理GET/POST请求。

 @RequestMapping("/helloworld")
public String helloWorld() {
return SUCCESS;
}

URL的地址:http://localhost:8082/helloworld

除此之外,@RequestMapping有两种用法,一是标在类上,二是标在方法上。

① 标记在类上:提供初步的请求映射信息。相对于 WEB 应用的根目录

② 标记在方法上:提供进一步的细分映射信息。相对于标记在类上的 URL。

 @Controller
@RequestMapping("/springmvc")
public class SpringMVCTest {
private static final String SUCCESS = "success";
@RequestMapping("/helloworld")
public String helloWorld() {
return SUCCESS;
}
}

URL的地址:http://localhost:8082/springmvc/helloworld

除此之外我们还可以设置处理请求的类型,GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS,TRACE;

 @Controller
@RequestMapping("/springmvc")
public class SpringMVCTest {
private static final String SUCCESS = "success";
@RequestMapping(value = "/helloworld", method = RequestMethod.GET)
public String helloWorld() {
return SUCCESS;
}
}

因为有多个属性,所以我们把方法的路由地址设置为value属性值,把请求方式设置为method,但是如果我们以POST方式去请求helloworld这个方法,就会抛出405错误。

我们打开postman,输入要访问的地址:http://localhost:8090/springmvc/helloworld    之后选择POST请求方式进行访问,我们就可以看到报出405。

2.补充用法

@RequestMapping除了能够对请求对url和请求方式进行设置之外,还可以对HTTP请求的内容(请求参数和请求头)进行设置,下面是一个标准HTTP请求的报文格式。

我们可以通过@RequestMapping的params和headers属性进行限制,我们重新来编写一个Controller方法,在@RequestMapping中我们设置了params和header属性,首先来看params属性,它表示的是,接受的请求中,必须包含username参数且age属性不能等于10,headers属性指的是方法处理的请求头中必须含有Accept-Language,且属性相同,这里一定要注意Accept-Language后面跟的是=。

 @RequestMapping(value = "/testParamAndHeaders", params = {"username", "age!=10"}, headers = {"Accept-Language=zh,zh-CN;q=0.9,en;q=0.8"})
public String testParamAndHeaders() {
System.out.println("testParamAndHeaders");
return SUCCESS;
}

我们在index.jsp定义如下代码进行测试:

 <a href="/springmvc/testHeadersAndParams">Test HeadersAndParams</a> <br><br>

①什么参数都不传,结果会报400

②如果只传递了username,是可以正常访问的,后台拿到的age为null所以可以正常访问

③如果传入用户名和年龄为10,也是会报400

④当传入用户名为wzy,年龄为11时,即可正常访问

并且我们通过谷歌的调试工具可以发现,确实发送了指定的请求头。

SpringMVC基础03——常用注解之@RequestMapping的更多相关文章

  1. springmvc学习笔记(常用注解)

    springmvc学习笔记(常用注解) 1. @Controller @Controller注解用于表示一个类的实例是页面控制器(后面都将称为控制器). 使用@Controller注解定义的控制器有如 ...

  2. SpringMVC入门和常用注解

    SpringMVC的基本概念 关于 三层架构和 和 MVC 三层架构 我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器,另一种是 B/S 架构,也就 是浏览器服务器.在 ...

  3. SpringMVC中的常用注解

    RequestParam 作用: 用于  将请求参数区数据  映射到  功能处理方法的参数上. 属性: value  请求参数中的名称 required   请求参数中是否必须提供此参数. 默认值: ...

  4. SpringMVC基础配置(通过注解配置,非xml配置)

    SpringMVC是什么,有多火,我这里就不再啰嗦了,SpringMVC比Struts2好用太多,我在学校的时候私下里两种都接触过,对比之后果断选择了SpringMVC,后来在做Android应用开发 ...

  5. springmvc基础知识及注解

    SpringMVC 1.概念 Spring的MVC框架是一个基于DispatcherServlet的MVC框架,主要由DispatcherServlet.处理器映射.处理器.视图解析器.视图组成.每一 ...

  6. springmvc基础篇—通过注解的方式去配置项目

    学习了通过xml方式去配置项目后,当然要掌握更简单更灵活的注解方式哟,这是官方推荐使用的方式. 一.修改配置文件,建议大家直接使用我的配置文件 <?xml version="1.0&q ...

  7. <SpringMvc>入门二 常用注解

    1.@RequestMapping @Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME ...

  8. 【springmvc学习】常用注解总结

    @Controller 在springmvc中,我们用它来告诉前端控制器,他这个类是controller,也就是springmvc的一个对象了,我们在spring.xml配置文件中用<conte ...

  9. 关于springMVC的一些常用注解

    ①:@RequestMapping("/helloworld").@RequestMapping(value="/emp", method=RequestMet ...

随机推荐

  1. Java快排

    package quickSort; /** * 快速排序 * @author root * */ public class QuickSort { static int[] data = {0,2, ...

  2. GitHub:Google

    ylbtech-GitHub:Google 1.返回顶部 · horenso 探しやすいコードで漢字直接入力    Perl  Apache-2.0 94710Updated on 19 Apr · ...

  3. 数据库CASE 函数 时间用法

    select * from warehouse_trade_detail whereb_createtime>= cast('2016-01-01' as date) and b_createt ...

  4. 日期格式存入字符类型之后,再转回datetime类型报错

    背景 最近我们迁移了一批服务器,因我们在azure portal 上新开的VM暂时默认只有英文系统,所以我们在开设好的数据库服务器的时候,都会重置数据库字符排序成中文,避免出现中文乱码问题,重置参考路 ...

  5. Linux下python安装升级详细步骤 | Python2 升级 Python3 转载

    Linux下python升级步骤  Python2 ->Python3 多数情况下,系统自动的Python版本是2.x 或者yum直接安装的也是2.x 但是,现在多数情况下建议使用3.x 那么如 ...

  6. 【学习笔记】APP页面,随机选择一个选项

    如下页面,一个测评功能,30个题目,每题的答案选项一样: 要实现每题自动随机选择一个答案 方法一:定义一个5个选项的列表,循环30次,然后使用random.shuffle打乱列表顺序,根据列表元素定位 ...

  7. A = min(1, max(0, A))

    Crop A into [0, 1]:

  8. Django 邮箱找回密码!!!!!!!!!!!!!!!!

    1.大概流程. @首先在完善登陆页面,增加忘记密码的链接. @为了账户安全,需要对操作者进行验证,向邮箱发随机数验证! @在重置验证码页面,验证验证码是否匹配(验证成功跳转至更改密码也页面). @ 重 ...

  9. 机器学习笔记:支持向量机(svm)

    支持向量机(svm)英文为Support Vector Machines 第一次接触支持向量机是2017年在一个在线解密游戏"哈密顿行动"中的一个关卡的二分类问题,用到了台湾教授写 ...

  10. ASP.NET Core EFCore 之DBFirst 自动创建实体类和数据库上下文

    通过引用Nuget包添加实体类 运行 Install-Package Microsoft.EntityFrameworkCore.SqlServer 运行 Install-Package Micros ...