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 ...
随机推荐
- centos 修改网卡信息命令
vi /etc/sysconfig/network-scripts/ifcfg-eth0
- 【Codeforces】Codeforces Round #374 (Div. 2) -- C. Journey (DP)
C. Journey time limit per test3 seconds memory limit per test256 megabytes inputstandard input outpu ...
- 【SQL】日期型函数
1. SYSTATE 用来返回系统当前时间 SQL> select sysdate from dual; SYSDATE ------------------- 2017-03-03 09:49 ...
- 基于 CC2530 的温度采集系统(未定稿)
前言 最近在自学 Zigbee,每天的主要是任务是:看博客,看 CC2530 的 datasheet 和实践,熟悉片上的 SFR 以及控制板子. 学和做内容包括:IO.外部中断.Timer1/3/4. ...
- Oracle数据库的导入和导出
Oracle数据库的导入和导出,是一项重要的的技术活,不但解决了数据库的导入导出,更方便快捷的获得数据. 使用imp和exp导入导出数据 使用exp导出数据 存放目录为\ORACLE_HOME\BIN ...
- change project compliance and jre to 1.5
这个主要检查一下几点 项目的jdk为1.7 java版本设置为1.7 java compiler 的页面设置为以下,并且去掉勾选java compiler 下面的 enableproject spec ...
- Data mapping-数据映射
数据映射:根据数据的结构信息建立数据间的映射操作机制. 数据映射的要素: 一.数据 1.源数据: 2.目标数据: 3.数据间关系: 4.数据的元数据(结构信息). 5.元素类型的对应关系. 二.元数据 ...
- MVC返回400 /404/...
return new HttpStatusCodeResult(HttpStatusCode.BadRequest); //HttpStatusCode statusCode 枚举 // HttpSt ...
- Memcached 之内存管理与删除机制
一.内存的碎片化 如果用c语言直接 malloc,free 来向操作系统申请和释放内存时,在不断的申请和释放过程中,形成了一些很小的内存片断,无法再利用,这种空闲,但无法利用内存的现象称为内存的碎片化 ...
- React Native - 使用Geolocation进行定位(获取当前位置、监听位置变化)
1,getCurrentPosition()方法介绍 static getCurrentPosition(geo_success, geo_error?, geo_options? 该方法用于获取当前 ...