SpringMVC基础-@RequestMapping
@RequestMapping
@RequestMapping是一个用来处理请求地址映射的注解
可用于类或方法上。
类定义处:提供初步的请求映射信息。相当于当前 WEB 应用的根目录
方法处:提供进一步的细分映射信息。相对于类定义处的 URL。
若类定义处未标注 @RequestMapping,则方法处标记的 URL 相当于当前 WEB 应用的根目录
若类定义处标注 @RequestMapping,则方法处标记的 URL 相对于类定义处的@RequestMapping而言的!
DispatcherServlet 截获请求后,就通过控制器上@RequestMapping 提供的映射信息确定请求所对应的处理方法。
@RequestMapping参数
1、value
指定请求的实际地址,指定的地址可以是URI Template 模式;
value的uri值为以下三类:
A) 可以指定为普通的具体值;如@RequestMapping(value="/deleteStudent")
B) 可以指定为含有某变量的一类值(URI Template Patterns with Path Variables);如@RequestMapping(value="/deleteStudent/{id}"),要在该方法中获取id时,需要使用@PathVariable(value = "id"),普通参数使用@RequestParam(value="id",required=false,defaultValue="123")获取,不加也可以,框架会自动加上,required=false表示不必须有id参数,,defaultValue表示默认值,此方法不能获取对象,对象用@ModelAttribute()获取
C) 可以指定为含正则表达式的一类值( URI Template Patterns with Regular Expressions);如@RequestMapping(value="/spring-web/{symbolicName:[a-z-]+}-{version:\d\.\d\.\d}.{extension:\.[a-z]}")
2、method
指定处理的请求的method类型, GET、POST、PUT、DELETE等; 不能直接响应PUT、DELETE请求,看另一片博客
3、consumes
指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;如@RequestMapping(value = "/pets", method = RequestMethod.POST, consumes="application/json"),方法仅处理request Content-Type为“application/json”类型的请求。
4、produces
指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;如@RequestMapping(value = "/pets/{petId}", method = RequestMethod.GET, produces="application/json"),方法仅处理request请求中Accept头中包含了"application/json"的请求,同时暗示了返回的内容类型为application/json;
5、params
指定request中是否包含某些参数值或指定参数必须等于某个值或指定参数必须不等于某个值,满足条件才让该方法处理;如@RequestMapping(value = "/pets/{petId}", method = RequestMethod.GET, params="myParam=myValue"),仅处理请求中包含了名为“myParam”,值为“myValue”的请求;
6、headers
指定request中是否包含某些header值或指定header值必须等于某个值或指定header值必须不等于某个值,满足条件才能让该方法处理请求;如@RequestMapping(value = "/pets", method = RequestMethod.GET, headers="Referer=http://www.ifeng.com/"),仅处理request的header中包含了指定“Refer”请求头和对应值为“http://www.ifeng.com/”的请求;
params 和 headers支持简单的表达式:
param1: 表示请求必须包含名为 param1 的请求参数
!param1: 表示请求不能包含名为 param1 的请求参数
param1 != value1: 表示请求可以包含名为 param1 的请求参数,但其值不能为 value1
{“param1=value1”, “param2”}: 请求必须包含名为 param1 和param2 的两个请求参数,且 param1 参数的值必须为 value1!
@RequestMapping 还支持 Ant 风格的 URL:
Ant 风格资源地址支持 3 种匹配符:
?:匹配文件名中的一个字符
/user/**/createUser: 匹配 /user/createUser、/user/aaa/bbb/createUser 等 URL
*:匹配文件名中的任意多个任意字符[0个字符除外!]
/user/*/createUser: 匹配 /user/aaa/createUser、/user/bbb/createUser 等 URL
**:** 匹配多层路径
/user/createUser??: 匹配/user/createUseraa、/user/createUserbb 等 URL
SpringMVC基础-@RequestMapping的更多相关文章
- SpringMVC基础03——常用注解之@RequestMapping
1.用法 SpringMVC使用@RequestMapping注解,为控制器指定可以处理哪些URL请求,并且可以指定处理请求的类型(POST/GET),如果@RequestMapping没有指定请求的 ...
- SpringMVC基础入门
一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 1 2 3 4 5 6 ...
- SpringMVC基础入门,创建一个HelloWorld程序
ref:http://www.admin10000.com/document/6436.html 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要 ...
- SpringMVC基础配置及使用
SpringMVC基础配置及使用 SpringMVC:1.SpringMVC和Spring的关系: 软件开发的三层架构: web层[表示层.表现层]---->Service层----> ...
- SpringMVC(三) RequestMapping修饰类
SpringMVC使用@RequestMapping 注解为控制器指定可以处理哪些URL请求. 可以用于类定义以及方法定义: 类定义:提供初步的请求映射信息.相对于WEB应用的根目录. 方法处:提供进 ...
- springMVC基础controller类
此文章是基于 搭建SpringMVC+Spring+Hibernate平台 功能:设置请求.响应对象:session.cookie操作:ajax访问返回json数据: 创建springMVC基础con ...
- SpringMVC基础学习(一)—初识SpringMVC
一.HelloWorld 1.导入SpringMVC所需的jar包 2.配置web.xml 配置DispatcherServlet.DispatcherServlet默认加载/ ...
- SpringMVC注解@RequestMapping之produces属性导致的406错误
废话不多说,各位,直接看图说话,敢吗?这个问题网上解决的办法写的狠是粗糙,甚至说这次我干掉它完全是靠巧合,但是也不否认网上针对406错误给出的解决方式,可能是多种情况下出现的406吧?我这次的流程就是 ...
- SpringMVC基础01——SpringMVC的知识结构体系
1.前言 目前在各大互联网公司使用最热门的技术莫过于SpringBoot以及在其基础之上的SpringCloud,然而学习这些技术的基础在于学好Spring和SpringMVC,准确来说SpringM ...
随机推荐
- UglyNumber - 找“丑数”
uglynumber的定义是只能被1,2,3,5整除的数 规定1是第一个uglynumber:以此类推,1 2 3 4 5 6 8 9 10 12 15 16 18 20 24 25 27 30 32 ...
- easyui复选框树动态加载后台数据,实现自动选中数据库中数据。后台语言是.NET
最近公司做项目用到了easyui复选框树来实现加载不同类型产品.因为我刚刚毕业,现在也算是实习吧,所以一脸懵逼啊.在公司里的一个哥的帮助下 ,我写出来这个EasyUi复选框树了,虽然东西不难,但也是自 ...
- zTree-已勾选项id传输到action的解决方案
测试jsp <%@ page language="java" contentType="text/html; charset=utf-8" page ...
- Epii.js 一个极其简单的Js模板引擎
Epii.js 简约而不简单的Js模板引擎 Epii.js 简约而不简单的JavaScript模板引擎 # 特性 一个轻量级模板引擎,可快速实现数据与ui绑定(数据变动,UI自动变动),快速实现事件绑 ...
- Android - 基于 Speex 的高度封装语音库,0 耦合使用
作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...
- linux下使用scp远程传输自动输入密码
由于需要将A服务器的文件 远程传输到B服务器 但是scp命令每次都要手动输入密码 这样脚本执行太繁琐,所以讲A服务器和B服务器互信即可,具体操作如下: 首先在A服务器配置: mkdir -p ~/.s ...
- 正则替换内容中图片的src
string test = "<IMG src=\"http://www.baidu.com/upload/2009_11/09112110144808.jpg\" ...
- Java 三目运算符表达式的一些问题
最近在处理一个需求,需求描述如下:对数据库中查询出来的数据的某一个字段做一个简单处理.处理方式是:如果该字段的值(取值范围0~4,有可能为null)等于0,那么默认处理成1. 测试代码如下: publ ...
- Nlpir Parser灵玖文本语义挖掘系统数据采集
在计算机广泛应用的今天,数据采集的重要性是十分显著的.它是计算机与外部物理世界连接的桥梁.各种类型信号采集的难易程度差别很大. 灵玖软件Nlpir Parser文本语义挖掘系统以分词技术为基础,集成了 ...
- Solr6.5配置中文分词器
Solr作为搜索应用服务器,我们在使用过程中,不可避免的要使用中文搜索.以下介绍solr自带的中文分词器和第三方分词器IKAnalyzer. 注:下面操作在Linux下执行,所添加的配置在windo ...