标签:pos div content bin 传递数据 数值 传参 post servlet
参数拼接在url后面,以Get方式传参
GET url= http://localhost:8080/geturlp?name=zhangsan
或者
以POST的表单提交的方式 x-www-form-urlencoded
POST url=http://localhost:8080/geturlp
curl -d "name=zhangsan" http://localhost:8080/geturlp
1 @RequestMapping(value = "/geturlp") 2 @ResponseBody 3 public String getParameterOfBasic(HttpServletRequest request){ 4 String name = request.getParameter("name"); 5 return name; 6 }
GET url=http://localhost:8080/getdefaultParam?username=zhangsan&password=1223
或者
POST url=http://localhost:8080/getdefaultParam
curl -d "username=zhangsan&password=1223"
1 @RequestMapping(value = "/getdefaultParam") 2 @ResponseBody 3 public String getdefaultParam(String username,String password){ 4 return username +":" + password; 5 }
@RequestParam不能传递空值,如果需要传递空值,可以设置默认值defaultValue或者required=fals
GET url=http://localhost:8080/getParam?username=zhangsan&password=123123
或者
POST url=http://localhost:8080/getParam
curl -d "username=zhangsan&password=123123"
1 @RequestMapping(value = "/getParam") 2 @ResponseBody 3 public String getParam(@RequestParam(value = "username",required = false) String name, 4 @RequestParam(value = "password",defaultValue = "12312312") String pwd){ 5 return name +":" + pwd; 6 }
此时能够自动把参数封装到形参的对象上
注意:
GET url=http://localhost:8080/getObj?name=zhangsan&age=12&score=12
或者
POST url=http://localhost:8090/mbank/test/param/getObj
curl -d "name=zhangsan&age=12&score=12" http://localhost:8090/mbank/test/param/getObj
1 @RequestMapping(value = "/getObj") 2 @ResponseBody 3 public String getObjBindObj(Student student){ 4 return student.toString(); 5 }
1 @RequestMapping(value = "/getObj") 2 @ResponseBody 3 public String getObjBindObj(@ModelAttribute("stu") Student student){ 4 return student.toString(); 5 }
注意:
1 @Data 2 @ToString 3 class Student{ 4 private String name; 5 private int age; 6 private String score; 7 } 8 9 @RequestMapping(value = "/getObj") 10 @ResponseBody 11 public String getObjBindObj(@RequestBody Student student){ 12 return student.toString(); 13 }
注意: 直接摘抄,没有做实验
当前台页面传来的参数是参数名相同,参数值不同的多个参数时,可以直接封装到方法的数组类型的形参中,也可以直接封装到对象的集合属性中。
比如批量删除时传来的参数。
1 RequestMapping("/test04") 2 public ModelAndView test04(String id[]){ 3 /*对于参数名相同的多个请求参数,可以直接使用数组作为方法的形参接收 4 可以使用对象中的集合属性接收*/ 5 for (String i : id) { 6 System.out.println(i); 7 } 8 return null; 9 }
1 @RequestMapping("/test05") 2 public ModelAndView test05(Student student){ 3 System.out.println(student.getId().size()); 4 for (String i : student.getId()) { 5 System.out.println(i); 6 } 7 return null; 8 }
Restful是一种软件架构风格,严格上说是一种编码风格,其充分利用 HTTP 协议本身语义从而提供了一组设计原则和约束条件。主要用于客户端和服务器交互类的软件,该风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
在后台,RequestMapping标签后,可以用{参数名}方式传参,同时需要在形参前加注解@PathVarible,假如前台的请求地址为localhost:8080/delete/3
GET url=http://localhost:8080/resultful/zhangsan/query
1 @RequestMapping("/resultful/{name}/query") 2 @ResponseBody 3 public String getRestFul(@PathVariable String name){ 4 return name; 5 }
当然也可以定义不同的名字
@RequestMapping("/resultful/{username}/query") @ResponseBody public String getRestFul(@PathVariable("username") String name){ return name; }
注意:
@PathVariable默认可以省略参数名字的,但是在Feign调用的时候最好带上,不然会出问题。记录下,以前好像碰到过这样的问题。(@PathVariable("name") String name)
标签:pos div content bin 传递数据 数值 传参 post servlet
原文地址:https://www.cnblogs.com/fengxueyi/p/13876140.html