镇海建设交通局网站,深圳科技网站建设,个人网站备案流程,房屋装修公司通过ServletAPI获取请求参数将HttpServletRequest作为控制器方法的形参#xff0c;此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象。htmlform th:action{/param/servletAPI} methodpost用户名#xff1a;input ty…通过ServletAPI获取请求参数将HttpServletRequest作为控制器方法的形参此时HttpServletRequest类型的 参数表示封装了当前请求的请求报文的对象。htmlform th:action{/param/servletAPI} methodpost用户名input typetext nameusernamebr密码input typetext namepasswordbrinput typesubmit value登录br
/formcontroller RequestMapping(/param/servletAPI)
// 要用servlet的API只需在控制器方法的参数设置public String getParmByServletAPI(HttpServletRequest request){String username request.getParameter(username);String password request.getParameter(password);System.out.println(username:username);System.out.println(password:password);return success;}通过控制器方法的形参获取请求参数 浏览器和服务器的参数名称一致情况只需要在控制器方法的形参位置设置一个形参 形参的名字要和请求参数的名字一致即可。htmlform th:action{/param} methodpost用户名input typetext nameusernamebr密码input typetext namepasswordbrinput typesubmit value登录br
/formcontroller RequestMapping(/param)public String getParam(String username,String password){System.out.println(username:username);System.out.println(password:password);return success;}参数名称不一致情况用RequestParam注解 RequestParam是将请求参数和控制器方法的形参创建映射关系。RequestParam注解的三个属性 value设置绑定的请求参数的名字required设置是否必须传输此请求参数默认值为true 表示当前请求必须传输value所指定的请求参数否则报错400defaultValue设置当没有传输value所对应的请求参数时 为形参设置的默认值此时和required属性值无关。 RequestMapping(/param)public String getParam(RequestParam(userName) String username, String password){System.out.println(username:username);System.out.println(password:password);return success;}RequestHeader注解将请求头信息和控制器方法形参绑定CookieValue将Cookie数据和控制器方法的形参绑定通过pojo获取请求参数通过控制器方法的实体类形的形参获取请求参数需要在控制器方法的形参位置设置实体类类型的形参保证实体类类中属性的属性名和请求参数的名字一致那么请求参数就会为此属性赋值,然后就可以通过实体类类型的形参获取请求参数。实体类public class User {private Integer id;private String username;private String password;public User() {}.......
}htmlform th:action{/param/pojo} methodpost用户名input typetext nameusernamebr密码input typetext namepasswordbrinput typesubmit value登录br
/formcontroller RequestMapping(/param/pojo)
// 前提是保证属性名和请求参数的名字一致public String getParamByPojo(User user){System.out.println(user:user);return success;}解决获取请求参数乱码问题 在控制器方法中写解决乱码问题的代码是不行的 因为在DispatcherServlet已经将请求参数获取过了 然后才可以在形参位置获取所以在这里设置解决编码问题没有用了。注意设置编码代码有个要求在设置编码之前 一定不能获取任意请求参数只要获取了设置的编码就没有作用。在web.xml配置编码过滤器CharacterEncodingFilter!-- 编码过滤器--filterfilter-nameCharacterEncodingFilter/filter-namefilter-classorg.springframework.web.filter.CharacterEncodingFilter/filter-classinit-param!-- 所使用的的框架有默认的编码的还需要设置自定义编码--param-nameencoding/param-nameparam-valueUTF-8/param-value/init-param!-- 如果只设置上面的初始化参数那么只会来设置请求的编码如果下面的也设置了不但设置请求的编码而且还会设置响应的编码 --init-paramparam-nameforceEncoding/param-nameparam-valuetrue/param-value/init-param/filterfilter-mappingfilter-nameCharacterEncodingFilter/filter-nameurl-pattern/*/url-pattern/filter-mapping