0.@Controller注解
作用:通过@Controller注解,注明该类为controller类,即控制器类,需要被spring扫描,然后注入到IOC容器中,作为Spring的Bean来管理,这样,Spring就能找到Controller类,通过@RequestMapping注解处理对应的请求。
1.@RequestMapping注解
作用:通过@RequestMapping注解可以定义不同的处理器映射规则。
1.1 注解位置
放在class类上
在class上添加@RequestMapping(url)指定通用请求前缀, 限制此类下的所有方法请求url必须以请求前缀开头,则前端访问url则是localhost:8080/springmvc/item/itemlist.action
放在controller方法上,注明访问该controller方法的uri是什么。
@Controller
@RequestMapping("/item")
public class ItemController {
@Autowired
private ItemService itemService;
@RequestMapping(value = {"/itemlist.action","/samePage.action"})
public String itemList(Model model,
HttpServletRequest request,
HttpServletResponse response,
HttpSession session
) throws Exception{
model.addAttribute("itemList", list);
return "itemList";
}
}
1.2 请求方法限定
除了可以对url进行设置,还可以限定请求进来的方法
1.2.1.限定GET方法
@RequestMapping(value = "/itemList",method = RequestMethod.GET)
如果通过POST访问则报错:
HTTP Status 405 - Request method 'POST' not supported
1.2.2.限定POST方法
@RequestMapping(value = "/itemList",method = RequestMethod.POST)
如果通过GET访问则报错:
HTTP Status 405 - Request method 'GET' not supported
1.2.3.GET和POST都可以
@RequestMapping(value = "/itemList",method = {RequestMethod.GET