springMVC学习笔记整理(二)-----获取数据
一、RequestMapping修饰类
package com.springmvc.handler; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller //类定义处:提供初步的请求映射信息。相对于web应用的根目录 @RequestMapping("springmvc") public class HelloWorldHandler { //方法处:提供进一步的的细分映射信息。相对于类定义处的URL //如果一个注解只有一个value属性,可以省略value @RequestMapping("/hello") public String hello() { System.out.println("走入到了hello方法中....."); return "success"; } }

二、RequestMapping精准化映射
@RequestMapping的value、method、params及headers分别表示请求URL、请求方法、请求参数以及请求头的映射条件
@Controller //类定义处:提供初步的请求映射信息。相对于web应用的根目录 @RequestMapping("springmvc") public class HelloWorldHandler { //方法处:提供进一步的的细分映射信息。相对于类定义处的URL //如果一个注解只有一个value属性,可以省略value @RequestMapping(value="/hello",method=RequestMethod.GET,params={"name=tom","age!=12"},headers={"accept=text/html"}) public String hello() { System.out.println("走入到了hello方法中....."); return "success"; } }

三、Ant风格URL
Ant风格资源地址支持3种匹配符:
?:匹配文件名中的一个字符
*:匹配文件名中的任意字符
**:匹配多层路径
@RequestMapping("/**/*Styl?")
public String antStyle() {
System.out.println("走入到了andStyle方法中.....");
return "success";
}

四、带有占位符的RUL映射
//Rest风格URL @RequestMapping(value="/testPathVar/{id}") public String testPathVar(@PathVariable(value="id") int id) { System.out.println(id); return "success"; }

五、REST风格架构
hiddenHttpMethodFilter:过滤器,可以过滤我们所有的请求,并且可以将请求细分为四种。
get--->
post--->寻找请求参数,是否有一个名字_method这样的一个请求方式,DELETE或PUT请求。如果没有,就是post
1、编写jsp文件
获取用户信息: <a href="springmvc/testGet/12">Test GET</a> <br/> 新建用户信息: <form method="post" action="springmvc/testPost"> <input type="submit" value="POST"/> </form> <br/> 删除用户信息: <form method="post" action="springmvc/testDelete/12"> <input type="hidden" name="_method" value="DELETE"/> <input type="submit" value="DELETE"> </form> <br/> 更新用户信息: <form method="post" action="springmvc/testPut/12"> <input type="hidden" name="_method" value="PUT"/> <input type="submit" value="PUT"> </form>
2、编写@Controller
//Rest风格URL @RequestMapping(value="/testGet/{id}",method=RequestMethod.GET) public String testGet(@PathVariable(value="id") Integer id) { System.out.println("正在获取id为" + id + "对应的员工信息"); return "success"; } @RequestMapping(value="/testPost",method=RequestMethod.POST) public String testPost() { System.out.println("正在向数据库添加员工"); return "success"; } @ResponseBody @RequestMapping(value="/testDelete/{id}",method=RequestMethod.DELETE) public String testDelete(@PathVariable(value="id") Integer id) { System.out.println("正在删除id为" + id + "员工的信息"); return "success"; } @ResponseBody @RequestMapping(value="/testPut/{id}",method=RequestMethod.PUT) public String testPut(@PathVariable(value="id") Integer id) { System.out.println("正在更新id为" + id + "员工的信息"); return "success"; }
3、配置web.xml
<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>
六、RequestParam获取请求正文
SpringMVC是通过处理方法的形参与请求参数进行绑定
1、编写jsp文件
测试获取请求参数: <form action="springmvc/testRequestParam"> id:<input type="text" name="id"/><br/> name:<input type="text" name="name"/><br/> <input type="submit" value="submit"> </form>
2、编写@Controller
//形参声明前面:加入@RequestParam(value="前端空间的name属性值") //如果形参名字与我们请求参数名称一致,可以省略RequestParam //required=true,当前请求参数为必须有,若无,则报错 @RequestMapping(value="testRequestParam") public String testRequestParam(@RequestParam(value="id",required=true)Integer a,String name) { System.out.println(a); System.out.println(name); return "success"; }
七、POJO绑定请求参数
SpringMVC会按请求参数名和POJO属性名进行自动匹配,支持级联属性(Adderss)
1、编写jsp文件
测试获取请求Pojo: <form action="springmvc/testRequestPojo"> id:<input type="text" name="id"/><br/> name:<input type="text" name="name"/><br/> city:<input type="text" name="address.city"/><br/> street:<input type="text" name="address.street"/><br/> <input type="submit" value="submit"> </form>
2、编写POJO对象
User
public class User { private Integer id; private String name; private Address address; //..getter()...setter()..toString().. }
Address
public class Address { private String city; private String street; //..getter()...setter()..toString().. }
3、编写@Controller
//POJO绑定请求 @RequestMapping(value="testRequestPojo") public String testRequestPojo(User user) { System.out.println(user); return "success"; }
八、RequestHeader获取请求报头信息
1、编写jsp文件
获取请求报头信息: <a href="springmvc/testRequestHeader">RequestHeader</a>
2、编写@Controller
//RequestHeader获取请求报头信息 @RequestMapping(value="/testRequestHeader") public String testRequestHeader(@RequestHeader("Accept")String a,@RequestHeader("User-Agent")String b) { System.out.println(a); System.out.println(b); return "success"; }
九、CookieValue获取Cookie信息
//@CookieValue获取Cookie信息 @RequestMapping(value="/testCookieValue") public String testCookieValue(@CookieValue("JSESSIONID")String id) { System.out.println(id); return "success"; }
浙公网安备 33010602011771号