springmvc学习(一)

一、Springmvc+maven框架搭建见其他篇博客。

二、接口相关设置。

     1)设置请求为Post请求OR 其他方式。没有指定请求必须是GET方法还是PUT/POST或其他方法,@RequestMapping注解默认会映射所有的HTTP请求方法。如果仅想接收某种请求方法,请在注解中指定之@RequestMapping(method=GET)以缩小范围。多看springmvc的文档。

/**
 * 使用method 属性来指定请求方式
 * @return
 */
@RequestMapping(value = "/helloworld",method = RequestMethod.POST)
public String helloworld(){
    System.out.println("hello world test");
    return "success";
}
 
  

2)请求路径的配置。

 
  
/**
 * 
 *AntPath设置
 */
@RequestMapping(value = "user/*/testAntPath") //*代表中间可以放任意一个字符。
@RequestMapping(value = "user/*/testAntPath")//** 代表中间可以放多个路径
@RequestMapping(value = "user/*/testAntPath?")//?代表匹配任何一个字符。testAntPatha
public String testAntPath(){
    System.out.println("hello world test");
    return "success";
}

 
  

3)Rest风格

 
  
/**
 * Rest风格Url
 * 以CURD为例
 * 新增 /Order POST
 * 修改 /Order/1  PUT  对应update?id=1;
 * 获取 /Order/1  GET     对应get?id=1
 * 删除 /Order/1 DELETE   对应delete?id=1;
 *
 * 如何发送PUT请求和UPDATE请求?
 * 1、需要配置HiddenHttpMethodFilter。
 * 2、需要发送Post请求
 * 3、需要在Post请求时,携带一个name="_method"的隐藏域,值为DELETE或PUT。
 */
 
  
@RequestMapping(value = "testRest",method = RequestMethod.DELETE) //*代表中间可以放任意一个字符。
public String testRest(){
    System.out.println("hello world test");
    return "success";
}
<filter>
    <filter-name>HiddenHttpMethodFilterfilter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilterfilter-class>
filter>
<filter-mapping>
    <filter-name>HiddenHttpMethodFilterfilter-name>
    <url-pattern>/*url-pattern>
filter-mapping>
<form action="testRest" method="post">
    <input type="hidden" name="_method",value="DELETE" />
    <input type="submit" value="Test DELETE">
form>

 
  

4)请求参数获取

/**
 * @RequestParam 来映射请求参数  @RequestHeader  @CookieValue基本同理
 * value值即为该参数名
 * required 标记该字段是否可以为空或不传
 * defaultValue 为该参数的默认值
 */
@RequestMapping("testRequestParam")
public String testRequestParam(@RequestParam(value = "username") String username,
                               @RequestParam(value = "age",required = false,defaultValue = "0") Integer age,
                               @RequestHeader(value = "xx") String headers,
                               @CookieValue(value = "cookie") String cookies){
    System.out.println("username="+username+"---age="+age);
    return "success";
}
/**
 * SpringMvc 会按请求参数名和Entity的属性名进行自动匹配并赋值,支持级联属性,
 * 如depth.depthid、depth.name
 */

@RequestMapping("testEntity")
public String testEntity(User user){
    return "success";
}


/**
 * 可以使用Serverlet 原生API作为目标方法的参数,具体支持以下类型
 * HttpServletRequest
 * HttpServletResponse
 * HttpSession
 * Local InputStream
 * OutpuStream
 * Reader
 * Write
 * 很强大
 * @param request
 * @param response
 * @return
 */
@RequestMapping("testSeverletApi")
public String testSeverletApi(HttpServletRequest request, HttpServletResponse response){
    return "success";
}



 
  


你可能感兴趣的:(springmvc学习(一))