只需要在控制器方法的形参设置HttpServletRequest类型的形参,
就可以在控制器方法中使用request对象获取请求参数。
controller控制层
@RequestMapping("/param/servletAPI")public String getParmByServletAPI(HttpServletRequest request){String username=request.getParameter("username");String password=request.getParameter("password");System.out.println("username:"+username+"passworld:"+password);return "success";}
thymeleaf渲染页面
跳转成功
只需要在控制器方法的形参位置,设置一个形参,
形参的名字和请求参数的名字 (表单name属性值等于value属性值) 一致即可。
controller控制层
@RequestMapping("/param")public String getParam(String username,String password){System.out.println("username:"+username+"passworld:"+password);return "success";}
@RequestParam:将请求参数和控制器方法的形参绑定
@RequestParam注解的三个属性:①value,②required,defaultvalue
①value:设置和形参绑定的请求参数的名字
②required:设置是否必须传输value所对应的请求参数,
默认值为true表示value所对应的请求参数必须传输,否则页面报错,
若为false,表示value所对应请求参数不是必须传输,
若为传输,则形参值为null。
③defaultValue:设置当没有传输value所对的请求参数时,为形参设置的默认值,
此时和required属性值无关。
controller控制层
@RequestMapping("/param")
public String getParam(@RequestParam(value = "userName",required = true,defaultValue ="hello")String username, String password){System.out.println("username:"+username+"passworld:"+password);return "success";
}
@RequestHeader:将请求头信息和控制器方法的形参绑定
@RequestHeader注解一共有三个属性:value、required、defaultValue,
用法同@RequestParam。
@CookieValue:将cookie数据和控制器方法的形参绑定
@CookieValue注解一共有三个属性:value、required、defaultValue,用法同@RequestParam
@RequestMapping("/param/servletAPI")
//当这个请求处理完成后,就会在响应报文里往浏览器响应JSESSIONID,从此之后每次发送请求都会携带cookiepublic String getParmByServletAPI(HttpServletRequest request){
// 获取session对象,请求报文中就有cookie数据了HttpSession session = request.getSession();String username=request.getParameter("username");String password=request.getParameter("password");System.out.println("username:"+username+"passworld:"+password);return "success";}@RequestMapping("/param")
//cookievalue注解的value值是获取数据cookie数据cookie的键
public String getParam(@CookieValue("JSESSIONID") String jsessionid){System.out.println("jsessionid:"+jsessionid);
//jsessionid:7B77E41C08EE94041881552DA35AA4C6return "success";
}
通过控制器方法的实体类型的形参获取请求参数
需要控制器方法的形参位置设置实体类类型的形参,
要保证实体类中的属性的属性名和请求参数的名字一致,
就可以直接把当前请求参数值封装到实体类类型的形参。
实体类
public class User {private Integer id;private String username;private String password;public User() {}....
}
controller控制层
@RequestMapping("/param/pojo")public String getParamByPojo(User user){System.out.println(user);//输出为:User{id=null, username='...', password='...'}return "success";}
thymeleaf渲染页面