介绍
由来:基于spring框架基础之上开发的一个全新的框架
作用:可以作为web开发时的控制器框架
目的:为了使现有项目中使用的spring框架,在mvc架构中存在自己的位置,因此开发了一个springmvc框架;
mvc:
- m:model模型,即service+dao+entity----> jdbc|mybatis;
- v:view视图,webapp页面----->jsp(动态网页)|html(静态网页)
- c:controller,struts2中的action----->struts2|servlet|springmvc
引言
典型的mvc框架,控制器框架,替换了struts2框架
优势
- spring的流行程度非常高,springmvc可以与其进行无缝整合;
- springmvc的运行效率高于struts2;
- springmvc推荐使用注解式开发,其注解式开发更加高效,更加灵活;
/**
* request.getParameter("name")
*
* 当发送请求的时候,找到对应的处理方法之后,会根据参数的名称从request中获取对应的参数值,并封装到方法中
* 此时要求,方法的名字和url中参数的名字必须一致,如果不一致,设置不成功
*
* 如果设置的值不同,同时又想让参数获取到对应的属性值,可以通过@RequestParam来使用
* 经常跟@PathVariable混淆,主要注意,两个注解有不同的用处
* 次注解的参数:
* value:获取的参数值
* required:表示当前属性值是否是必须存在的,默认值是true,表示请求中必须要包含此参数,如果没有,400,bad request
* defaultValue:如果传递参数了,那么使用传递进来的参数,如果没有使用默认值
* @param name
* @return
*/
@RequestMapping("/testRequest")
public String testRequest(@RequestParam(value = "username",required = false,defaultValue = "lisi") String name){
System.out.println(name);
return "success";
}
/**
* 获取请求头信息:
* 通过@RequestHeader注解来表示
* request.getHeader("User-Agent")
*
* 同时也包含了几个参数
* value:
* required:
* defaultValue:
* 同@RequestParam
* @param userAgent
* @return
*/
@RequestMapping("/testRequestHeader")
public String testRequestHeader(@RequestHeader("User-Agent") String userAgent){
System.out.println(userAgent);
return "success";
}
/**
* 获取cookie中的值,使用@CookieValue注解
* Cookie[] cookies = request.getCookies();
* 同时也包含了几个参数
* * value:
* * required:
* * defaultValue:
* * 同@RequestParam
* @param jsid
* @return
*/
@RequestMapping("/testCookie")
public String testCookie(@CookieValue("JSESSIONID") String jsid){
System.out.println(jsid);
return "success";
}
}