1、RequestMapping
1.1、作用
- 作用在类上表示第一级的访问目录;
- 作用在方法上表示第二级的访问目录。
注意:路径可以不编写 / 表示应用的根目录开始
1.2、属性
- path:指定请求路径的url
- value:value属性和path属性是一样的
- method:指定该方法的请求方式
- params:指定限制请求参数的条件
- headers:发送的请求中必须包含的请求头
1.3、RequestMapping的使用
/**
* RequestMapping注解
* @return
*/
@RequestMapping(value = "/testRequestMapping",params = {"username=heihei"},headers = {"Accept"})
public String testRequestMapping() {
System.out.println("测试RequestMapping注解...");
return "success";
}
2、RequestParam
2.1、作用
- 把请求中的指定名称的参数传递给控制器中的形参赋值,常用于解决形参名和请求参数名不一致问题。
2.2、属性
- value:请求参数中的名称
- equired:请求参数中是否必须提供此参数,默认值是true,必须提供
2.3、RequestParam注解的使用
/**
* RequestParam注解:
* @param username
* @return
*/
@RequestMapping("/testRequestParam")
public String testRequestParam(@RequestParam(name="name") String username){
System.out.println(username);
return "success";
}
3、RequestBody
3.1、作用
扫描二维码关注公众号,回复:
8783504 查看本文章
- 用于获取请求体的内容(注意:get方法不可以);
- 把json的字符串转换成JavaBean的对象。
3.2、属性
- equired:是否必须有请求体,默认值是true
3.3、RequestBody注解的使用
/**
* RequestBody注解:获取到请求体的内容
* @param body
* @return
*/
@RequestMapping("/testRequestBody")
public String testRequestBody(@RequestBody String body){
System.out.println(body);//username=zhangsan&password=123
return "success";
}
4、PathVariable
4.1、作用
- 拥有绑定url中的占位符的。
4.2、属性
- value:指定url中的占位符名称
4.3、PathVariable注解的使用
/**
* PathVariable注解:
* @return
*/
@RequestMapping(value="/testPathVariable/{sid}")
public String testPathVariable(@PathVariable(name="sid") String id){
System.out.println(id);
return "success";
}
5、RequestHeader
5.1、作用
- 获取指定请求头的值
5.2、属性
- value:请求头的名称
5.3、RequestHeader注解的使用
/**
* RequestHeader注解:获取请求头的值
* @param header
* @param request
* @param response
* @return
* @throws IOException
*/
@RequestMapping(value="/testRequestHeader")
public String testRequestHeader(@RequestHeader(value="Accept") String header, HttpServletRequest request, HttpServletResponse response) throws IOException {
System.out.println(header);
return "success";
// response.sendRedirect(request.getContextPath()+"/anno/testCookieValue");
//return "redirect:/param.jsp";
}
6、CookieValue
6.1、作用
- 用于获取指定cookie的名称的值
6.2、属性
- value:cookie的名称
6.3、CookieValue注解的使用
/**
* CookieValue注解:获取Cookie的值
* @param cookieValue
* @return
*/
@RequestMapping(value="/testCookieValue")
public String testCookieValue(@CookieValue(value="JSESSIONID") String cookieValue){
System.out.println(cookieValue);
return "success";
}
7、ModelAttribute
7.1、作用
- 作用在方法上,表示当前方法会在控制器方法执行前线执行;
- 作用在参数上,获取指定的数据给参数赋值。
7.2、ModelAttribute的使用
/**
* ModelAttribute注解:作用在方法时,表示当前方法会在控制器方法执行前执行。
* @param username
* @param map
*/
@ModelAttribute
public void showUser(String username, Map<String,UserInfo> map){
UserInfo userInfo = new UserInfo();
userInfo.setUsername(username);
userInfo.setPassword("123");
userInfo.setDate(new Date());
map.put("userInfo",userInfo);
}
8、SessionAttribute
8.1、作用
- 用于多次执行控制器方法间的参数共享
8.2、属性
- value:指定存入属性的名称
8.3、 SessionAttribute注解的使用
package com.wedu.springmvc.web;
import com.wedu.springmvc.domain.UserInfo;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.support.SessionStatus;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;
import java.util.Map;
/**
* springmvc常用注解的使用
*/
@Controller
@RequestMapping("/annotation")
@SessionAttributes(value = {"msg"})
public class AnnoController {
/**
* SessionAttributes注解:用于多次执行控制器方法间的参数共享
* 向session中存储数据
* @return
*/
@RequestMapping(value="/testSessionAttributes")
public String testSessionAttributes(Model model){
// 底层会存储到request域对象中
model.addAttribute("msg","测试OK");
return "success";
}
/**
* 从session中获取值
* @param modelMap
* @return
*/
@RequestMapping(value="/getSessionAttributes")
public String getSessionAttributes(ModelMap modelMap){
String msg = (String) modelMap.get("msg");
System.out.println(msg);
return "success";
}
/**
* 将session中的值清除
* @param status
* @return
*/
@RequestMapping(value="/delSessionAttributes")
public String delSessionAttributes(SessionStatus status){
System.out.println("将session中的值清除...");
status.setComplete();
return "success";
}
}