常用的注解
- RequestParam注解
- 作用:把请求中的指定名称的参数传递给控制器中的形参赋值
- 属性
- value:请求参数中的名称
- required:请求参数中是否必须提供此参数,默认值是true,必须提供
- 代码如下
package com.qcby.web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
@RequestMapping("/test")
public class TestController {
@RequestMapping("/save")
public String save(@RequestParam(value = "username",required = false) String name){
System.out.println(name);
return "suc";
}
}
- RequestBody注解
- 作用:用于获取请求体的内容(注意:get方法不可以)
- 属性
- required:是否必须有请求体,默认值是true
- 代码如下
package com.qcby.web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
@RequestMapping("/test")
public class TestController {
@RequestMapping("/save")
public String save(@RequestParam(value = "username",required = false) String name){
System.out.println(name);
return "suc";
}
@RequestMapping("/save2")
public String save2(@RequestBody String body){
System.out.println(body);
return "suc";
}
}
- PathVaribale注解
- 作用:拥有绑定url中的占位符的。例如:url中有/delete/{id},{id}就是占位符
- 属性
- value:指定url中的占位符名称
- Restful风格的URL
- 请求路径一样,可以根据不同的请求方式去执行后台的不同方法
- restful风格的URL优点
- 结构清晰
- 符合标准
- 易于理解
- 扩展方便
代码如下
package com.qcby.demo3;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
// @RequestMapping("/emp")
public class EmpController {
/**
* 保存
* @return
*/
@RequestMapping(path = "/emp",method = RequestMethod.POST)
public String save(){
System.out.println("保存员工...");
return "suc";
}/**
* 查询所有
* @return
*/
@RequestMapping(path = "/emp",method = RequestMethod.GET)
public String findAll(){
System.out.println("查询员工...");
return "suc";
}
/**
* 查询所有
* @return
*/
@RequestMapping(path = "/emp/{id}",method = RequestMethod.GET)
public String findById(@PathVariable(value = "id") Integer id){
System.out.println("通过id查询员工..."+id);
return "suc";
}
}
修改前端控制器的配置文件
<!‐‐配置前端控制器‐‐>
<servlet>
<servlet‐name>dispatcherServlet</servlet‐name>
<servlet‐class>org.springframework.web.servlet.DispatcherServlet</servlet‐class>
<!‐‐加载springmvc.xml配置文件,配置的是Spring配置‐‐>
<init‐param>
<param‐name>contextConfigLocation</param‐name>
<param‐value>classpath:springmvc.xml</param‐value>
</init‐param>
<!‐‐配置启动加载‐‐>
<load‐on‐startup>1</load‐on‐startup>
</servlet>
<!‐‐
<servlet‐mapping>
<servlet‐name>dispatcherServlet</servlet‐name>
<url‐pattern>*.do</url‐pattern>
</servlet‐mapping>
‐‐>
<servlet‐mapping>
<servlet‐name>dispatcherServlet</servlet‐name>
<url‐pattern>/</url‐pattern>
</servlet‐mapping>
- RequestHeader注解
- 作用:获取指定请求头的值
- 属性
- value:请求头的名称
- 代码如下
/**
* RequestHeader 获取请求头的值
* @return
*/
@RequestMapping("/save3.do")
public String save3(@RequestHeader(value = "Accept") String header){
System.out.println("Accept请求头的值:"+header);
return "suc";
}
- CookieValue注解
- 作用:用于获取指定cookie的名称的值
- 属性
- value:cookie的名称
- 代码
/**
* CookieValue 获取到cookie中的值
* @return
*/
@RequestMapping("/save4.do")
public String save4(@CookieValue(value = "JSESSIONID") String cookie){
System.out.println("值:"+cookie);
return "suc";
}