REST风格:软件编程风格
SpringMVC:
GET: 查
POST: 增
DELETE: 删
PUT: 改
普通浏览器只支持get、post、DELETE、PUT通过过滤器实现。
rest风格传值实现步骤:
a.增加过滤器
<!--过滤器--> <!--目的:给普通浏览器增加delete/put请求方式--> <filter> <filter-name>HiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter> <filter-mapping> <filter-name>HiddenHttpMethodFilter</filter-name> <!--过滤全部--> <url-pattern>/*</url-pattern> </filter-mapping>
b.form表单
<form action="SpringMVCHandler/testDelete/1234" method="post"> <input type="hidden" name="_method" value="DELETE"> <input type="submit" value="删"> </form>
c.控制器
@RequestMapping(value = "testRest/{id}",method = RequestMethod.DELETE) //映射 public String testDelete(@PathVariable("id") Integer id){ System.out.println("delete:删"+id); return "success"; //通过视图解析器拼接前缀后缀(prefix,suffix),/views/success.jsp ,默认使用了请求转发的跳转方式 }
普通方式传值:
@RequestParam("uname") String uname,@RequestParam(value = "uage",required = false,defaultValue = "34") Integer uage)
@RequestParam("uname"):接收前台的传值;
required = false:表示该属性不是必须的;
defaultValue:默认值。
获取请求头信息:
@RequestHeader("Accept-Language") String acceptLanguage
通过mvc获取Cookie值(JSESSIONID):
@CookieValue("JSESSIONID") String JSessionId
使用对象(实体类)接收请求参数:
//获取对象属性 @RequestMapping(value = "testObjectProperties") public String testObjectProperties(Student student){//student属性必须与form表单中的name值一致(支持级联属性) System.out.println(student.getId()+","+student.getName()+","+student.getAddress().getHomeAddress()+","+student.getAddress().getSchoolAddress()); return "success"; //通过视图解析器拼接前缀后缀(prefix,suffix),/views/success.jsp ,默认使用了请求转发的跳转方式 } <form action="SpringMVCHandler/testObjectProperties" method="get"> id:<input name="id" type="text"> name:<input name="name" type="text"> homeAddress:<input name="address.homeAddress" type="text"> schoolAddress:<input name="address.schoolAddress" type="text"> <input type="submit" value="查"> </form>
在SpringMVC中使用原生态的Servlet API:
//使用原生态的Servlet API @RequestMapping(value = "testServletApi") public String testServletApi(HttpServletRequest request){ //request.getParameter("uname"); System.out.println(request); return "success"; }