恢弘志士之气,不宜妄自菲薄。这篇文章主要讲述springmvc之@Controller@RequestMapping等注解解说相关的知识,希望能为你提供帮助。
首先来看下一段代码:
@Controller @RequestMapping("/user") public class UsersController { @RequestMapping(value="https://www.songbingjia.com/findAll") private String findAll(){ return "index"; } }
以下对上面几个注解进行简单的说下使用方法:
@Controller
【springmvc之@Controller@RequestMapping等注解解说】@Controller:表明这个类是一个控制器类。假设用这个注解。须要在spring-mvc配置文件加上这一段。< context:component-scan base-package="com.ztz.springmvc.controller"/>
@RequestMapping
@RequestMapping:能够为控制器指定处理能够请求哪些URL请求,@RequestMapping能够定义在类或方法上。
- 类上:提供初步的请求映射信息。相对于 WEB 应用的根文件夹
- 方法上:提供进一步的细分映射信息。
相对于类定义处的 URL。
若类定义处未标注 @RequestMapping。则方法处标记的 URL 相对于WEB 应用的根文件夹
@RequestMapping 提供的映射信息确定请求所相应的处理方法。
@RequestMapping 除了能够使用请求 URL 映射请求外,还能够使用请求方法、请求參数及请求头映射请求。
@RequestMapping 限定请求方法、 请求參数、 请求头
@Controller @RequestMapping("/user") public class UsersController { @RequestMapping(value="https://www.songbingjia.com/findAll",method=RequestMethod.GET) private String findAll(){ System.out.println("仅仅接受get请求"); return "index"; } }
@Controller @RequestMapping("/user") public class UsersController { @RequestMapping(value="https://www.songbingjia.com/findAll",method=RequestMethod.POST) private String findAll(){ System.out.println("仅仅接受post请求"); return "index"; } }
@Controller @RequestMapping("/user") public class UsersController { @RequestMapping(value="https://www.songbingjia.com/findAll",params="name") private String findAll(){ System.out.println("仅仅接受name參数"); return "index"; } }
假设一个请求URL,没有携带name參数,那么该方法就拒绝呗訪问。
@Controller @RequestMapping("/user") public class UsersController { @RequestMapping(value="https://www.songbingjia.com/findAll",headers="Content-Type:text/html; charset=UTF-8") private String findAll(){ System.out.println("仅仅接受请求头中Content-Type为text/html; charset=UTF-8的请求"); return "index"; } }
@RequestParam 绑定请求參数 在处理方法入參处使用 @RequestParam 能够把请求參数传递给请求方法
- value:參数名
- required: 是否必须。 默觉得 true, 表示请求參数中必须包括相应的參数, 若不存在,将抛出异常
@Controller @RequestMapping("/user") public class UsersController { @RequestMapping(value="https://www.songbingjia.com/findAll") private String findAll(@RequestParam(value="https://www.songbingjia.com/android/name",required=true)String name,//參数name不能为空 @RequestParam(value="https://www.songbingjia.com/android/sex",required=false)String sex,//參数sex能够为空 @RequestParam(value="https://www.songbingjia.com/android/age",defaultValue="https://www.songbingjia.com/android/20")String age){//參数age假设为空,默认值为20 System.out.println(name); System.out.println(sex); System.out.println(age); return "index"; } }
浏览器请求:http://127.0.0.1:8080/springmvc/user/findAll?name=123 控制台输出: 123
null
20
@RequestHeader 获取请求头 一个Http请求头包括了若干个属性。server可据此获知client的信息,通过@RequestHeader就可以将求头中的属性值绑定到处理方法的入參中。
@Controller @RequestMapping("/user") public class UsersController { @RequestMapping(value="https://www.songbingjia.com/findAll") private String findAll(@RequestHeader(value="https://www.songbingjia.com/android/User-Agent")String user_Agent, @RequestHeader(value="https://www.songbingjia.com/android/Cookie")String cookie){ System.out.println(user_Agent); System.out.println(cookie); return "index"; } }
浏览器请求:http://127.0.0.1:8080/springmvc/user/findAll 控制台输出: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36
JSESSIONID=0E665D80D25F097EB9ECA533F07C3355
@CookieValue 获取cookie值
上面我们获得http请求头的cookie。如今我们直接去获得cookie的值。
@Controller @RequestMapping("/user") public class UsersController { @RequestMapping(value="https://www.songbingjia.com/findAll") private String findAll(@CookieValue(value="https://www.songbingjia.com/android/JSESSIONID")String cookie){ System.out.println(cookie); return "index"; } }
浏览器请求:http://127.0.0.1:8080/springmvc/user/findAll 控制台输出: 0E665D80D25F097EB9ECA533F07C3355
@RequestBody获取http的body
@Controller @RequestMapping("/user") public class UsersController { @RequestMapping(value="https://www.songbingjia.com/findAll",method=RequestMethod.POST) private String findAll(@RequestBody(required=true) String body){ System.out.println(body); return "index"; } }
这里採用Fiddler測试下。POST请求http://127.0.0.1:8080/springmvc/user/findAll,消息体是:{"name":"test @RequestBody"} 控制台输出: {"name":"test @RequestBody"}
PS:能掌握上面几个注解,springmvc就能几乎相同能够用了。
推荐阅读
- Android-Gradle
- Android 7.0 TextView点击事件无效修复方案
- Spring mvc中@RequestMapping 基本用法
- word怎样画图?word画图图文详细教程攻略_Word专区
- excel筛选怎样用?excel2013筛选运用图文详细教程_Excel专区
- 福昕PDF浏览器无法复制文字的处理办法_其它办公
- 福昕PDF浏览器语言设置办法_其它办公
- 福昕PDF浏览器怎样关闭广告?_其它办公
- 福昕PDF浏览器浏览模式切换办法_其它办公