@RequestMapping
1.RequestMapping path,请求映射的路径
1 @Controller 2 public class HelloController { 3 @RequestMapping("/hello") 4 public String sayHello(){ 5 System.out.println("进入到Springmvc中controller层的一个方法中来了"); 6 return "success"; 7 } 8 }
不同路径指向同一个页面(login、register、updatepwd、addUser,登录成功都指向success.jsp)
1 @Controller 2 public class UserController { 3 @RequestMapping(value = "/user/login") 4 public String userLogin(){ 5 String username = "Ming"; 6 String pwd = "123456"; 7 if("Ming".equals(username)&&"123456".equals(pwd)){ 8 return "success"; 9 10 }else { 11 return "error"; 12 } 13 } 14 @RequestMapping(value = "/user/register") 15 public String userRegister(){ 16 System.out.println("register,注册"); 17 return "success"; 18 } 19 @RequestMapping(value = "/user/updatePwd") 20 public String updateUserPwd(){ 21 System.out.println("update user pwd"); 22 return "success"; 23 } 24 @RequestMapping(value = "/user/addUser") 25 public String addUser(){ 26 System.out.println("add user."); 27 return "success"; 28 } 29 30 }
2.RequestMapping parameters,请求映射参数
value数组中是或的关系,params数组中是和的关系
URL:http://localhost:8080/rmpp/test01?param1&username=ming
1 @Controller 2 public class RequestMappingParamsPropController { 3 @RequestMapping(value = {"/rmpp/test01", "rmpp/test001"},params = {"param1","username=ming"}) 4 public String test01(){ 5 System.out.println("test01"); 6 return "success"; 7 }//http://localhost:8080/rmpp/test01?param1&username=ming 8 }
3.RequestMapping method,请求映射方法类型(GET/POST)
method数组中的请求方法是或的关系,需要在postman里发起post请求。
1 @Controller 2 public class RequestMappingMethodController { 3 @RequestMapping(value = "/rmm/test01",method = {RequestMethod.GET, RequestMethod.POST}) 4 public String test01(){ 5 System.out.println("test01"); 6 return "success"; 7 } 8 }
4.RequestMapping headers,请求的头部,在postman中增加headers属性。
1 @Controller 2 public class RequestMappingHeaderPropController { 3 @RequestMapping(value = "/rmhp/test01", headers = {"username=ming"}) 4 public String test01(){ 5 System.out.println("test01"); 6 return "success"; 7 } 8 }
5.请求风格——Ant
?:匹配文件名中的一个字符
*:匹配文件名中的任意字符
**:匹配多层路径
1 @Controller 2 public class RequestMappingAntController { 3 //http://localhost:8080/anttest01 4 //http://localhost:8080/anttest11 5 //http://localhost:8080/anttest21 6 //http://localhost:8080/anttestA1 7 //http://localhost:8080/anttesta1 8 //http://localhost:8080/anttestb1 9 10 @RequestMapping(value ="/ant/test?1") 11 public String test01(){ 12 System.out.println("ant-test01"); 13 return "success"; 14 } 15 //http://localhost:8080/anttest661 16 //http://localhost:8080/anttestAA1 17 //http://localhost:8080/ant/testAllllllllllllllllllA1 18 @RequestMapping(value ="/ant2/test*1") 19 public String test02(){ 20 System.out.println("ant-test02"); 21 return "success"; 22 } 23 //http://localhost:8080/ant3/a/b/123/c/d 24 //http://localhost:8080/ant3/a/b/aabbcc/c/d 25 //http://localhost:8080/ant3/a/b/1/2/3/c/d 26 @RequestMapping(value ="/ant3/a/b/**/c/d") 27 public String test03(){ 28 System.out.println("ant-test03"); 29 return "success"; 30 } 31 }
6.请求风格——RESTful(@PathVariable)
placeholder:{username}
@PathVariable("username")
通过请求地址进行数据传输
URL:http://localhost:8080/user/login/ming/123456
1 @Controller 2 public class RequestMappingRestfulController { 3 @RequestMapping("/user/login/{username}/{password}") 4 public String userLogin(@PathVariable("username")String username, 5 @PathVariable("password") String password){ 6 7 System.out.println("username="+username); 8 System.out.println("password="+ password); 9 System.out.println("user log in"); 10 return "success"; 11 }//http://localhost:8080/user/login/ming/123456 12 13 }
7.RequestMapping(@RequestParam)
?:是通过表单进行参数传递
@RequestParam将form中的参数传递到方法中
1 <div> 2 <form action="/add/user" method="post"> 3 <table> 4 <tr> 5 <td>No.</td> 6 <td> 7 <input type="text" placeholder="please input no." name="uno"/> 8 </td> 9 </tr> 10 <tr> 11 <td>Name</td> 12 <td> 13 <input type="text" placeholder="please input name" name="uname"/> 14 </td> 15 </tr> 16 </table> 17 <button type="submit">submit</button> 18 </form> 19 </div>
@RequestParam("uno")和@RequestParam("uname")中请求参数名需要与表单中的name="uno"和name="uname"名称一致
1 @Controller 2 public class UserAddController { 3 @RequestMapping("/add/user") 4 public String addUser(@RequestParam("uno") String uno, 5 @RequestParam("uname") String uname, 6 @RequestHeader("Host") String host){ 7 System.out.println("uno=" + uno); 8 System.out.println("uname=" + uname); 9 System.out.println("host=" +host); 10 return "success"; 11 12 }
@RequestParam,默认为“1”和“5”(String类型),分页。
1 @RequestMapping("/user/page") 2 public String userPage(@RequestParam(value = "pageNum",required = false, defaultValue = "1") Integer pageNum, 3 @RequestParam(value = "pageSize",required = false, defaultValue = "5") Integer pageSize){ 4 System.out.println("pageNum=" +pageNum); 5 System.out.println("pageSize=" + pageSize); 6 return "success"; 7 //http://localhost:8080/user/page 8 //http://localhost:8080/user/page?pageNum/pageSize 9 //http://localhost:8080/user/page?pageNum=6 10 //http://localhost:8080/user/page?pageSize=6 11 //http://localhost:8080/user/page?pageNum=6&pageSize=6 12 //http://localhost:8080/user/page?pageSize=6&pageNum=6 13 }
8.@RequestHeader,获取request headers中的属性值,像“Host”,"Connection"...
1 @Controller 2 public class UserAddController { 3 @RequestMapping("/add/user") 4 public String addUser(@RequestParam("uno") String uno, 5 @RequestParam("uname") String uname, 6 @RequestHeader("Host") String host){ 7 System.out.println("uno=" + uno); 8 System.out.println("uname=" + uname); 9 System.out.println("host=" +host); 10 return "success"; 11 12 }