• 【SpringMVC]获取参数的六种方式


    目录

    1.通过ServletAPI获取

    2.通过控制器方法的形参获取

    3.@RequestParam:将请求参数和控制器方法的形参绑定

    4.@RequestHeader:将请求头信息与控制器方法的形参的值进行绑定

    5. CookieValue:将cookie数据和控制器方法的形参绑定

    Cookie:

    ​编辑

    6.通过控制器方法的实体类类型的形参获取请求参数

    对应的index.html页面:


    SpringMVC的处理流程:(用户请求-》Controller-》Model-》Controller-》View-》响应给用户)

     用户通过视图层(View)发送请求到服务器,在服务器中请求被Controller接收,Controller调用相应的Model层处理请求,处理完毕将结果返回到Controller,Controller再根据请求处理的结果找到相应的View视图,渲染数据后最终响应给浏览器

    1.通过ServletAPI获取

    只需要在控制器的方法的形参位置设置HTTPRequest  request 类型的形参就i可以在控制器方法种使用request对象获取请求参数

    1. @RequestMapping("/param/servletAPI")
    2. public String getParamServletAPI(HttpServletRequest request){
    3. HttpSession session = request.getSession();
    4. String username = request.getParameter("username");
    5. String password = request.getParameter("password");
    6. System.out.println("username = " + username + "," + "password = " + password);
    7. return "success";
    8. }

    2.通过控制器方法的形参获取

    只需要在控制器方法的形参位置设置一个形参,形参的名字和请求参数的名字保持一致即可

    1. @RequestMapping("/param")
    2. public String getParam(String username, String password){
    3. System.out.println("username = " + username + "," + "password = " + password);
    4. return "success";
    5. }

    3.@RequestParam:将请求参数和控制器方法的形参绑定

    @RequestParam注解的三个属性:value,require,defaultValue

    value:设置和形参绑定的请求参数的名字

    required:设置是否必须传输value所对应得求情参数默认值为true,表示value所对应得请求参数必须传输,否则页面报错 ,或设置为false,则表示value所对应得请求参数不是必须传输,若为传输,则形参值为null

    defaultValue:设置当没有传输value所对应得请求参数时,为形参设置得默认值,此时和required属性无关

    1. @RequestMapping("/param")
    2. public String getParam(@RequestParam(value = "userName",required = true,defaultValue = "hello")String username, String password,){
    3. System.out.println("username = " + username + "," + "password = " + password);
    4. return "success";
    5. }

    4.@RequestHeader:将请求头信息与控制器方法的形参的值进行绑定

    1. @RequestMapping("/param")
    2. public String getParam(String username, String password,
    3. @RequestHeader("referer") String referer){
    4. System.out.println("username = " + username + "," + "password = " + password);
    5. System.out.println("referer = " + referer);
    6. return "success";
    7. }

    5. CookieValue:将cookie数据和控制器方法的形参绑定

    1. @RequestMapping("/param")
    2. public String getParam(String username, String password,
    3. @CookieValue("JSESSIONID") String jsessionId){
    4. System.out.println("username = " + username + "," + "password = " + password);
    5. System.out.println("jsessionId = " + jsessionId);
    6. return "success";
    7. }

    Cookie:

    6.通过控制器方法的实体类类型的形参获取请求参数

    注意:需要在控制器方法的形参位置设置实体类类型的形参,要保证实体类的属性的属性名和请求参数的名字保持一致,可以通过实体类类型的形参获取请求参数

    1. @RequestMapping("/param/pojo")
    2. public String getParamByPojo(User user){
    3. System.out.println(user);
    4. return "success";
    5. }
    对应的index.html页面:
    1. <h3>前五种方式实现:h3>
    2. <form th:action="@{/param}" method="get">
    3. 用户名:<input type="text" name="username"><br>
    4. 密码: <input type="password" name="password"><br>
    5. <input type="submit" value="登录">
    6. form>
    7. <h3>pojo实现:h3>
    8. <form th:action="@{/param/pojo}" method="get">
    9. 用户名:<input type="text" name="username"><br>
    10. 密码: <input type="password" name="password"><br>
    11. <input type="submit" value="登录">
    12. form>
    13. 跳转页面:
    14. html>
    15. <html lang="en" xmlns:th="http://www.thymeleaf.org">
    16. <head>
    17. <meta charset="UTF-8">
    18. <title>成功title>
    19. head>
    20. <body>
    21. <h1>success.htmlh1>
    22. body>
    23. html>

     

  • 相关阅读:
    【学习笔记】C++再入门过程-2
    摸鱼也有效率——8个python自动化脚本提高打工人幸福感~
    cv2.imread无法读取图片
    EMQX v4.4.5 发布:新增排他订阅及 MQTT 5.0 发布属性支持
    定制开发肯德基自动化网站下单软件
    ROS OpenCV库 示例
    接口高可用
    京东一小伙一年输出20篇专利,其实你也可以
    基于matlab/simulink永磁直驱风力发电低电压穿越控制仿真模型
    C# out参数out多个参数
  • 原文地址:https://blog.csdn.net/xiaobaisimple/article/details/132761672