苏州网站建设找苏州聚尚网络首选免费的开源网站

当前位置: 首页 > news >正文

苏州网站建设找苏州聚尚网络首选,免费的开源网站,python语言基础知识,织梦网站发布的哪些产品和文章放在a文件可以吗SprinMVC获取请求参数 Spring MVC 提供的获取请求参数的方式 通过 HttpServletRequest 获取请求参数通过控制器方法的形参获取请求参数使用 RequestParam 注解获取请求参数通过实体类对象获取请求参数#xff08;推荐#xff09; 通过ServlstAPI获取 将HttpServletRequest…SprinMVC获取请求参数 Spring MVC 提供的获取请求参数的方式 通过 HttpServletRequest 获取请求参数通过控制器方法的形参获取请求参数使用 RequestParam 注解获取请求参数通过实体类对象获取请求参数推荐 通过ServlstAPI获取 将HttpServletRequest作为控制器方法的参数此时HttpServletRequest类型的参数表示封装了当前请求报文的对象。 基础的配置文件的配置和文件结构请参考 示例 首页控制器 RequestMapping(/param) public String test_param(){return test_param; }test_param.html !DOCTYPE html html langen headmeta charsetUTF-8 xmlns:thhttp://www.thymeleaf.orgtitle测试请求参数/title /head body h3测试请求参数/h3 a th:href{/testServletAPI(username louie, passwordroot)}测试使用ServletAPI获取请求参数/a /body /htmlcontroller Controller public class ParamController {//形参位置的request表示当前的请求RequestMapping(/testServletAPI)public String testServletAPI(HttpServletRequest request){String username request.getParameter(username);String password request.getParameter(password);System.out.println(username username password password);return success;}/usernamelouie passwordroot/ }2、通过控制器方法的形参获取请求参数 在控制器方法的形参位置设置和请求参数同名的形参当浏览器发送请求匹配到请求映射时在DispatcherServlet中就会将请求参数赋值给相应的形参。 示例 形参位置的参数名和请求参数的参数名相同 test_param.html a th:href{/testParam(username louie, passwordroot)}测试使用控制器的形参获取请求参数/acontroller RequestMapping(testParam) public String testParam(String username, String password){System.out.println(username username password password);return success; } /username louie password root/当我们有多个同名的参数的时候该怎么处理 test_param.html form th:action{/testParamSeem}用户名input typetext nameusernamebr/密码input typepassword namepasswordbr/爱好input typecheckbox namehobby valueaainput typecheckbox namehobby valuebbinput typecheckbox namehobby valueccbr/input typesubmit value测试使用控制器的形参获取请求参数 /formcontroller RequestMapping(testParamSeem) //请求参数中出现多个同名的请求参数可以在控制器方法的形参位置设置字符串或字符串数组接收如String hobby 或 String[] hobby //若使用字符串类型的参数最终结果为对应请求参数值它们之间使用逗号进行拼接 public String testParamSeem(String username, String password, String hobby){System.out.println(username username password password hobby hobby);return success; } /username louie password 1212 hobby a,b,c/[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X7bT8Tu8-1691196849418)(G:\practise\coding\JAVA\Blog\MVC\获取多个同名参数1.png)] 3、使用 RequestParam 注解获取请求参数 当由于特殊原因导致形参位置的参数名和请求参数的参数名不一致时可以使用RequestParam注解进行处理 示例 test_param.html form th:action{/testParamDifName}用户名input typetext nameusernamebr/密码input typepassword namepasswordbr/爱好input typecheckbox namehobby valueaainput typecheckbox namehobby valuebbinput typecheckbox namehobby valueccbr/input typesubmit value测试使用控制器的形参获取请求参数 /formcontroller RequestMapping(testParamDifName) public String testParamDifName(RequestParam(username) String user,String password,String hobby){System.out.println(user user password password hobby hobby);return success; }RequestParam RequestParam是将请求参数和控制器方法的形参创建映射关系 value指定为形参赋值的请求参数的参数名 requird表示是否必须传输请求参数默认值时true,此时如果没有传输请求参数且没有设置defaultValue属性就会报错如果设置为false表示请求参数不是必须传输value所指定的请求参数如果有则赋值若没有则为null defaultValue不管required属性值为true或false,当value所指定的请求参数没有传输或传输参数为空字符串时则使用默认请求参数赋值。 RequestHeader RequestHeader是将请求头信息和控制器方法的形参创建映射关系 它的属性也有三个value、required、defaultValue,用法和RequestParam相同如RequestHeader(“Host”) String host CookieValue CookieValue是将cookie数据和控制器方法的形参创建映射关系 它也有三个属性value、required、defaultValue,用法和RequestParam相同。 4、通过POJO获取请求参数 可以在控制器方法的形参位置设置一个实体类型的形参此时若浏览器传输的请求参数的参数名和实体类中的属性名一致那么请求参数就会为此属性赋值。 示例 User public class User {private Integer id;private String username;private String password;private Integer age;private String sex;private String email;public User(){}public User(Integer id, String username, String password, Integer age, String sex, String email) {this.id id;this.username username;this.password password;this.age age;this.sex sex;this.email email;}public Integer getId() {return id;}public void setId(Integer id) {this.id id;}public String getUsername() {return username;}public void setUsername(String username) {this.username username;}public String getPassword() {return password;}public void setPassword(String password) {this.password password;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex sex;}public String getEmail() {return email;}public void setEmail(String email) {this.email email;}Overridepublic String toString() {return User{ id id , username username \ , password password \ , age age , sex sex \ , email email \ };} }test_param.html form th:action{/testPOJO} methodpost用户名input typetext nameusernamebr/密码input typepassword namepasswordbr/性别input typeradio namesex value男男input typeradio namesex value女女br/年龄input typetext nameagebr/邮箱input typetext nameemailbr/input typesubmit value使用POJO接收 /formcontroller RequestMapping(/testPOJO) public String testPOJO(User user){System.out.println(user);return success; } /User{idnull, usernamekhan, passwordroot, age23, sex??·, email123123qq.com}/乱码解决 ①可以改变请求方式GET原因是GET请求乱码是Tomcat造成的当我们添加了编码方式的时候就可以解决。 ②请求方式为POST:可以通过过滤器来设置编码的格式。需要在数据传输之前就设置编码格式。 在web.xml中设置编码格式 filterfilter-nameCharacterEncodingFilter/filter-namefilter-classorg.springframework.web.filter.CharacterEncodingFilter/filter-classinit-param!–设置请求的编码–param-nameencoding/param-nameparam-valueUTF-8/param-value/init-paraminit-param!–设置响应的编码–param-nameforceResponseEncoding/param-nameparam-valuetrue/param-value/init-param /filter filter-mappingfilter-nameCharacterEncodingFilter/filter-nameurl-pattern/*/url-pattern /filter-mapping