/*传参的方式:
* request。来接收参数
* public String login(HttpServletRequest request){}
*
* 2.直接用页面传过来的数据原型来接收(String username,String password)
* public String login(String username,String password){}
*
*3.当请求参数和接收参数不一致时,可以通过
*public String login(@RequestParam(“username”) String name,@RequestParam(“password”) String pwd,){}
*
*4.通过对象来接受参数。先建立一个实体类,和页面传过来的属性值相对应必须。
* public String login(User user){}
*
*
*5.@PathVariable//前者是从路径中获取变量,也就是把路径当做变量
@RequestParam//后者是从请求里面获取参数,
RequestParam 汉语意思就是: 请求参数。顾名思义 就是获取参数的
PathVariable 汉语意思是:路径变量。顾名思义,就是要获取一个url 地址中的一部分值,那一部分呢?
RequestMapping 上说明了@RequestMapping(value="/emp/{id}"),我就是想获取你URL地址 /emp/ 的后面的那个 {id}的
@PathVariable是用来获得请求url中的动态参数的
因此,就看‘?’ 若是想获取 ‘?’ 后面的pageNo 的值 ‘2’, 就使用RequestParam 。若想获取的是url 地址的一部分 ‘7’ 就使用PathVariable
、@pathVariable和RequestParam的区别:
顾名思义,前者是从路径中获取变量,也就是把路径当做变量,后者是从请求里面获取参数,从请求来看:
/Springmvc/user/?pageSize=3&pageNow=2
pageSize和pageNow应该是属于参数而不是路径,所以应该添加@RequestParam的注解。
如果做成如下URL,则可以使用@PathVariable
someUrl/{paramId},这里的paramId是路径中的变量,应使用@pathVariable
*
* */
*
6.@ModelAttribute获取POST请求的FORM表单数据
<form method="post" action="">
a: <input id="a" type="text" name="a"/>
b: <input id="b" type="text" name="b"/>
<input type="submit" value="Submit" />
</form>
7.**@RequestBody 是用来接收到请求中放入body的参数。(一般讲参数扔到body中的,是post)
8.@CookieValue 与@RequestBody的用法类似,不过它是可以找到cookie中的参数**
使用@requestBody.当请求content_type为:application/json类型的请求,数据类型为json时, json格式如下:{“aaa”:“111”,“bbb”:“222”}
不使用@requestBody.当请求content_type为:application/x-www-form-urlencoded类型的或multipart/form-data时,数据格式为aaa=111&bbb=222。
Httpservlet请求的实例
package com.qst.controller;
import org.springframework.http.HttpRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpServletRequest;
@Controller
@RequestMapping("/user")
public class UserController {
/*传参的方式:
* request。来接收参数
* public String login(HttpServletRequest request){}
*
* 2.直接用页面传过来的数据原型来接收(String username,String password)
* public String login(String username,String password){}
*
*3.当请求参数和接收参数不一致时,可以通过
*public String login(@RequestParam("username") String name,@RequestParam("password") String pwd,){}
*
*4.通过对象来接受参数。先建立一个实体类,和页面传过来的属性值相对应必须。
* public String login(User user){}
*
* */
@RequestMapping("/login")
public String login(HttpServletRequest request){
String username = request.getParameter("username");
String password = request.getParameter("password");
if ("zhangsan".equals(username) && "123456".equals(password))
{
return "success";
}else {
return "error";
}
}
}