springmvc之@Controller、@RequestMapping等注解解说
首先来看下一段代码:
@Controller
@RequestMapping("/user")
public class UsersController {
@RequestMapping(value="/findAll")
private String findAll(){
return "index";
}
}
以下对上面几个注解进行简单的说下使用方法:
@Controller
@Controller:表明这个类是一个控制器类。假设用这个注解。须要在spring-mvc配置文件加上这一段。<context:component-scan base-package="com.ztz.springmvc.controller"/>
@RequestMapping
@RequestMapping:能够为控制器指定处理能够请求哪些URL请求,@RequestMapping能够定义在类或方法上。
- 类上:提供初步的请求映射信息。相对于 WEB 应用的根文件夹
- 方法上:提供进一步的细分映射信息。
相对于类定义处的 URL。
若类定义处未标注 @RequestMapping。则方法处标记的 URL 相对于WEB 应用的根文件夹
DispatcherServlet 截获请求后,就通过控制器上
@RequestMapping 提供的映射信息确定请求所相应的处理方法。
@RequestMapping 除了能够使用请求 URL 映射请求外,还能够使用请求方法、请求參数及请求头映射请求。
@RequestMapping 限定请求方法、 请求參数、 请求头
@Controller
@RequestMapping("/user")
public class UsersController { @RequestMapping(value="/findAll",method=RequestMethod.GET)
private String findAll(){
System.out.println("仅仅接受get请求");
return "index";
}
}
@Controller
@RequestMapping("/user")
public class UsersController { @RequestMapping(value="/findAll",method=RequestMethod.POST)
private String findAll(){
System.out.println("仅仅接受post请求");
return "index";
}
}
@Controller
@RequestMapping("/user")
public class UsersController { @RequestMapping(value="/findAll",params="name")
private String findAll(){
System.out.println("仅仅接受name參数");
return "index";
}
}
假设一个请求URL,没有携带name參数,那么该方法就拒绝呗訪问。
@Controller
@RequestMapping("/user")
public class UsersController { @RequestMapping(value="/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="/findAll")
private String findAll(@RequestParam(value="name",required=true)String name,//參数name不能为空
@RequestParam(value="sex",required=false)String sex,//參数sex能够为空
@RequestParam(value="age",defaultValue="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
null
20
@RequestHeader 获取请求头
@Controller
@RequestMapping("/user")
public class UsersController { @RequestMapping(value="/findAll")
private String findAll(@RequestHeader(value="User-Agent")String user_Agent,
@RequestHeader(value="Cookie")String cookie){
System.out.println(user_Agent);
System.out.println(cookie);
return "index";
}
}
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值
@Controller
@RequestMapping("/user")
public class UsersController { @RequestMapping(value="/findAll")
private String findAll(@CookieValue(value="JSESSIONID")String cookie){
System.out.println(cookie);
return "index";
}
}
0E665D80D25F097EB9ECA533F07C3355
@RequestBody获取http的body
@Controller
@RequestMapping("/user")
public class UsersController { @RequestMapping(value="/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"}
springmvc之@Controller、@RequestMapping等注解解说的更多相关文章
- SpringMVC的controller方法中注解方式传List参数使用@RequestBody
在SpringMVC控制器方法中使用注解方式传List类型的参数时,要使用@RequestBody注解而不是@RequestParam注解: //创建文件夹 @RequestMapping(value ...
- SpringMVC中 Controller的 @ResponseBody注解分析
需求分析:需要 利用 out 对象返回给财付通是否接收成功 .那么将需要如下代码: /** * 返回处理结果给财付通服务器. * @param msg: Success or fail. * @ ...
- SpringMVC常用注解實例詳解1:@Controller,@RequestMapping,@RequestParam,@PathVariable
我的開發環境 框架: springmvc+spring+freemarker 開發工具: springsource-tool-suite-2.9.0 JDK版本: 1.6.0_29 to ...
- SpringMVC中@Controller和@RequestMapping用法和其他常用注解
一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Mo ...
- SpringMVC中@Controller和@RequestMapping用法和其他常用注解(转)
一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Mo ...
- SpringMVC 基于注解的Controller @RequestMapping @RequestParam..
概述 继 Spring 2.0 对 Spring MVC 进行重大升级后,Spring 2.5 又为 Spring MVC 引入了注解驱动功能.现在你无须让 Controller 继承任何接口,无需在 ...
- spring mvc 注解@Controller @RequestMapping @Resource的详细例子
现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...
- spring mvc:内部资源视图解析器2(注解实现)@Controller/@RequestMapping
spring mvc:内部资源视图解析器2(注解实现) @Controller/@RequestMapping 访问地址: http://localhost:8080/guga2/hello/goo ...
- spring mvc:内部资源视图解析器(注解实现)@Controller/@RequestMapping
spring mvc:内部资源视图解析器(注解实现)@Controller/@RequestMapping 项目访问地址: http://localhost:8080/guga2/hello/prin ...
随机推荐
- (三)Appium-desktop 打包
appium-desktop经过二次开发后,需要打包为应用提供给其它同学使用.我们知道appium-desktop是使用electron来构建跨平台桌面应用程序.electron有electron-p ...
- Android 侦听应用(Package)变化的方法侦听广播
应用的状态变化,包括安装.卸载.更新,是android系统上重要的事件.如何侦听到?有两种方法,一是通过侦听广播,一是实现PackageMonitor. 侦听广播 当Package状态发生变化时, ...
- Android java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader......couldn't find "libweibosdkcore.so
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/ ...
- 【Oracle】解决oracle sqlplus 中上下左右backspace不能用
一. 解决输入 BACKSPACE 键变成 ^h 的问题 #su - oracle $stty erase ^h. 要永久生效,可以加入到用户环境配置文件.bash_profile中(vi .ba ...
- java反射_01
为什么要用反射? 举个栗子: package com.imooc.reflect; public class Work { // 定义一个word方法 public void word() { Sys ...
- SLAM:使用G2O-ORB-SLAM(编译)
前言: 没有新雪,看看自己所做的事情,有没有前人做过.果然,EKF_SLAM的版本出现了Android版本的OpenEKFMonoSLAM, G2O-ORB SLAM也出现了VS2012版本. 一.S ...
- Cache-Control 机制是为浏览器定制的?
Cache-Control 机制是为浏览器定制的?
- CorelDRAW图片导出变色,如何解决?
很多小伙伴反映说CDR颜色导出不准确,特别是CorelDRAW X4以及之前的版本,那么CDR导出变色的问题是怎么导致的,如何解决呢,本文小编分享一些自己的心得. 一:出现问题. 比如下面这个问题,明 ...
- STM32F103 rtthread工程构建
目录 STM32F103 工程构建 1.基本情况 2.硬件连接 3.rtthread配置 4.点灯 5. 码云上git操作 STM32F103 工程构建 1.基本情况 RAM 20K ROM 64K ...
- swift-自动计算字符串的宽高
写一个方法来继承String //自动控制文字换行及宽度 extension String { func textSizeWithFont(font: UIFont, constrainedToSiz ...