SpringMVCController和RequestMap
Spring2。5版本新增了SpringMVC注解功能,用于替换传统的基于XML的SpringMVC配置。
创建两个传统风格的控制器,它们是实现Controller接口的类。传统风格的控制器不仅需要在配置文件中部署映射,而且只能编写一个处理方法,不够灵活。
使用基于注解的控制器具有以下2个优点:
在基于注解的控制器类中可以编写多个处理方法,进而可以处理多个请求(动作),这就允许将相关的操作编写在同一个控制器类中,从而减少控制器类的数量,方便以后维护。
基于注解的控制器不需要在配置文件中部署映射,仅需要使用RequestMapping注解一个方法进行请求处理即可。
下面介绍在SpringMVC中最重要的两个注解类型:Controller和RequestMapping。Controller注解
Controller注解用于声明某类的实例是一个控制器。例如,在net。biancheng。controller包中创建控制器类IndexController,示例代码如下。packagenet。biancheng。controller;importorg。springframework。stereotype。Controller;ControllerpublicclassIndexController{处理请求的方法}123456复制代码类型:〔java〕
SpringMVC使用扫描机制找到应用中所有基于注解的控制器类,所以,为了让控制器类被SpringMVC框架扫描到,需要在配置文件中声明springcontext,并使用元素指定控制器类的基本包(请确保所有控制器类都在基本包及其子包下)。RequestMapping注解
一个控制器内有多个处理请求的方法,如UserController里通常有增加用户、修改用户信息、删除指定用户、根据条件获取用户列表等。每个方法负责不同的请求操作,而RequestMapping就负责将请求映射到对应的控制器方法上。
在基于注解的控制器类中可以为每个请求编写对应的处理方法。使用RequestMapping注解将请求与处理方法一一对应即可。
RequestMapping注解可用于类或方法上。用于类上,表示类中的所有响应请求的方法都以该地址作为父路径。
RequestMapping注解常用属性如下。
1。value属性
value属性是RequestMapping注解的默认属性,因此如果只有value属性时,可以省略该属性名,如果有其它属性,则必须写上value属性名称。如下。RequestMapping(valuetoUser)RequestMapping(toUser)12复制代码类型:〔java〕
value属性支持通配符匹配,如RequestMapping(valuetoUser)表示http:localhost:8080toUser1或http:localhost:8080toUserhahaha都能够正常访问。
2。path属性
path属性和value属性都用来作为映射使用。即RequestMapping(valuetoUser)和RequestMapping(pathtoUser)都能访问toUser()方法。
path属性支持通配符匹配,如RequestMapping(pathtoUser)表示http:localhost:8080toUser1或http:localhost:8080toUserhahaha都能够正常访问。
3。name属性
name属性相当于方法的注释,使方法更易理解。如RequestMapping(valuetoUser,name获取用户信息)。
4。method属性
method属性用于表示该方法支持哪些HTTP请求。如果省略method属性,则说明该方法支持全部的HTTP请求。
RequestMapping(valuetoUser,methodRequestMethod。GET)表示该方法只支持GET请求。也可指定多个HTTP请求,如RequestMapping(valuetoUser,method{RequestMethod。GET,RequestMethod。POST}),说明该方法同时支持GET和POST请求。
5。params属性
params属性用于指定请求中规定的参数,代码如下。RequestMapping(valuetoUser,paramstype)publicStringtoUser(){returnshowUser;}12345复制代码类型:〔java〕
以上代码表示请求中必须包含type参数时才能执行该请求。即http:localhost:8080toUser?typexxx能够正常访问toUser()方法,而http:localhost:8080toUser则不能正常访问toUser()方法。RequestMapping(valuetoUser,paramstype1)publicStringtoUser(){returnshowUser;}12345复制代码类型:〔python〕
以上代码表示请求中必须包含type参数,且type参数为1时才能够执行该请求。即http:localhost:8080toUser?type1能够正常访问toUser()方法,而http:localhost:8080toUser?type2则不能正常访问toUser()方法。
6。header属性
header属性表示请求中必须包含某些指定的header值。
RequestMapping(valuetoUser,headersRefererhttp:www。xxx。com)表示请求的header中必须包含了指定的Referer请求头,以及值为http:www。xxx。com时,才能执行该请求。
7。consumers属性
consumers属性用于指定处理请求的提交内容类型(ContentType),例如:applicationjson、texthtml。如
RequestMapping(valuetoUser,consumesapplicationjson)。
8。produces属性
produces属性用于指定返回的内容类型,返回的内容类型必须是request请求头(Accept)中所包含的类型。如RequestMapping(valuetoUser,producesapplicationjson)。
除此之外,produces属性还可以指定返回值的编码。如RequestMapping(valuetoUser,producesapplicationjson,charsetutf8),表示返回utf8编码。
使用RequestMapping来完成映射,具体包括4个方面的信息项:请求URL、请求参数、请求方法和请求头。
开课吧广场人才学习交流平台
加密货币数据网络报价出错比特币错跌90至5402美元华尔街一些大玩家运营的加密货币数据网络显示,比特币周一暴跌了约90,这一故障在其他平台上没有出现。这个名为Pyth的平台被其支持者誉为股票和加密货币等资产定价信息的工业级……
腾讯刚砸出1000亿,微信就要收费?用户会买单吗?声明:原创不易,禁止搬运,违者必究!微信变了?微信是我们常用的一款软件,集社交、支付为一体的一款软件。微信并不是一款装机必备的软件,但是从目前来看,微信已经非常普及了,微……
中国航天,向未来《2021中国的航天》白皮书日前发布,除了系统介绍2016年以来我国在航天领域的重大工程和科学应用外,也介绍了未来5年我国航天事业发展的主要任务、政策与措施、国际交流与合作等内……
简单计算器算法)二计算整数因子当非零整数a除另一个整数b,余数为0时,a称为b的因子。例如,2是所有偶数整数的因子。我们可以编写下面的函数来确定非零整数a是否是另一个整数b的因子:d……
6K左右能买到什么性能强拍照好的旗舰手机?感谢邀请6K左右能买到什么性能强拍照好的旗舰手机?实际我们会看到随着手机系统的优化越来越好,使用起来流畅之后。人们在选择手机的时候,确实已经把关注点放在了其他的配置方面,……
消息称谷歌Pixel7系列继续搭载三星基带芯片有消息表示谷歌正开发Pixel7系列旗舰,谷歌Pixel7系列除了预装Android13操作系统之外,该机另一个备受关注的方面则是芯片,最近9to5Google在Android……
山西公布29个科技重大专项计划揭榜挂帅项目黄河新闻网讯(记者侯津刚)10月15日,记者从山西省科技厅获悉,该厅当日发布关于2021年度山西省科技重大专项计划揭榜挂帅项目的张榜通知。本次张榜项目共29个,聚焦国家重大战略……
为什么华为还要做华为云呢?他能竞争的过阿里云吗?余承东说,谁说我华为云比不过阿里云,华为在私有云建设中无论市场占有率还是速度都远超阿里云,去年赚了几百亿,只不过你们不知道罢了!华为在云端的技术不错,很早就推出了云管端的……
主播网红这个东西还能存在多久?因网络存在的需要而定,只有国家制理整顿净化网络健康环境时才能看存在的时间了。必须严管视频带货和电商了,到了刻不容缓地步了会一直存在的,因为有用户需求,就会创造价值养……
最新版微信体验最期待的朋友圈功能终于在PC上见到了来源:PConline微信电脑版终于可以支持浏览朋友圈了!微信电脑版不能刷朋友圈终于成为了历史。在最新发布的微信forMac3。0。0。1内测版中,用户发现微信的桌……
中国电信5G消息对普通用户是喜是忧?5G消息主要作用是解放手机下载过多APP导致的手机内存不足。未来手机的发展是尽量的云化相关业务,特别是储存类的,未来的应用更轻,随时互联互通,手机的性能更多的是网络性能和芯片性……
鸿蒙系统即将问世,任正非罕见发声,给华为指明方向5月底,华为官方已经确认,鸿蒙系统将在6月2号推出。同时,多款预装鸿蒙OS的新设备也会相继发布。按照华为软件部负责人王成录给出的信息,未来一年华为会努力让鸿蒙市占率维持在16以……