• SpringMVC的常用注解,参数传递以及页面跳转的使用


    目录

    slf4j

    常用注解

    @RequestMapping

    @RequestParam

    @RequestBody

    @PathVariable

    参数传递 

    首先在pom.xml配置文件中导入SLF4J的依赖

    基础类型+String 

     复杂类型

    @RequestParam

    @PathVariable

    @RequestBody 

    增删改查 

    返回值

    void返回值

     String返回值

    model+String  

    页面跳转 --转发和重定向


    slf4j

    SLF4J,简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统。

    它允许最终用户在部署其应用时使用其所希望的日志系统。 实际上,SLF4J所提供的核心API是一些接口以及一个LoggerFactory的工厂类。在使用SLF4J的时候,不需要在代码中或配置文件中指定你打算使用哪个具体的日志系统。SLF4J提供了统一的记录日志的接口,只要按照其提供的方法记录即可,最终日志的格式、记录级别、输出方式等通过具体日志系统的配置来实现,因此可以在应用中灵活切换日志系统。

    如果你开发的是类库或者组件,那么首先应该考虑采用SLF4J,因为不可能影响最终用户选择哪种日志系统。

    在另一方面,如果是一个简单或者独立的应用,确定只有一种日志系统,那么就没有使用SLF4J的必要。假设你打算将你使用log4j的产品卖给要求使用logback的用户时,面对成千上万的log4j调用的修改,相信这绝对不是一件轻松的事情。但是如果开始便使用SLF4J,那么这种转换将是非常轻松的事情。

    说白了,slf4j方便我们在不动代码的前提下随意切换我们的日志框架。在部署的时候,选择不同的日志系统包,就可自动转换到不同的日志系统上。

    常用注解

    @RequestMapping

            @RequestMapping注解是一个用来处理请求地址映射的注解,可用于映射一个请求或一个方法,可以用在类或方法上。

    @RequestParam

            @RequestParam主要用于将请求参数区域的数据映射到控制层方法的参数上


    @RequestBody

        @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(即请求体中的数据的

            GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。

    @PathVariable

            该注解请求URI中的模板变量部分到处理器功能处理方法的方法参数上的绑定。

            即当使用@RequestMapping URI template 样式映射时, 即 someUrl/{paramId}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上。

    参数传递 

    首先在pom.xml配置文件中导入SLF4J的依赖

    1. <log4j2.version>2.9.1</log4j2.version>
    2. <log4j2.disruptor.version>3.2.0</log4j2.disruptor.version>
    3. <slf4j.version>1.7.13</slf4j.version>
    4. <!--4.log日志相关依赖-->
    5. <!-- log4j2日志相关依赖 -->
    6. <!-- log配置:Log4j2 + Slf4j -->
    7. <!-- slf4j核心包-->
    8. <dependency>
    9. <groupId>org.slf4j</groupId>
    10. <artifactId>slf4j-api</artifactId>
    11. <version>${slf4j.version}</version>
    12. </dependency>
    13. <dependency>
    14. <groupId>org.slf4j</groupId>
    15. <artifactId>jcl-over-slf4j</artifactId>
    16. <version>${slf4j.version}</version>
    17. <scope>runtime</scope>
    18. </dependency>
    19. <!--核心log4j2jar包-->
    20. <dependency>
    21. <groupId>org.apache.logging.log4j</groupId>
    22. <artifactId>log4j-api</artifactId>
    23. <version>${log4j2.version}</version>
    24. </dependency>
    25. <dependency>
    26. <groupId>org.apache.logging.log4j</groupId>
    27. <artifactId>log4j-core</artifactId>
    28. <version>${log4j2.version}</version>
    29. </dependency>
    30. <!--用于与slf4j保持桥接-->
    31. <dependency>
    32. <groupId>org.apache.logging.log4j</groupId>
    33. <artifactId>log4j-slf4j-impl</artifactId>
    34. <version>${log4j2.version}</version>
    35. </dependency>
    36. <!--web工程需要包含log4j-web,非web工程不需要-->
    37. <dependency>
    38. <groupId>org.apache.logging.log4j</groupId>
    39. <artifactId>log4j-web</artifactId>
    40. <version>${log4j2.version}</version>
    41. <scope>runtime</scope>
    42. </dependency>
    43. <!--需要使用log4j2的AsyncLogger需要包含disruptor-->
    44. <dependency>
    45. <groupId>com.lmax</groupId>
    46. <artifactId>disruptor</artifactId>
    47. <version>${log4j2.disruptor.version}</version>
    48. </dependency>

    基础类型+String 

    测试结果: 

     

     复杂类型

    测试结果 

    @RequestParam

     

    @PathVariable

     

    @RequestBody 

       在使用这个注解的时候我们需要配置pom.xml文件,导入json

    1. <jackson.version>2.9.3</jackson.version>
    2. <dependency>
    3. <groupId>com.fasterxml.jackson.core</groupId>
    4. <artifactId>jackson-databind</artifactId>
    5. <version>${jackson.version}</version>
    6. </dependency>
    7. <dependency>
    8. <groupId>com.fasterxml.jackson.core</groupId>
    9. <artifactId>jackson-core</artifactId>
    10. <version>${jackson.version}</version>
    11. </dependency>
    12. <dependency>
    13. <groupId>com.fasterxml.jackson.core</groupId>
    14. <artifactId>jackson-annotations</artifactId>
    15. <version>${jackson.version}</version>
    16. </dependency>

     这里我们就就要请外援了,Eolink

     

    增删改查 

    1. //查询的请求
    2. @GetMapping
    3. public String type1(){
    4. System.out.println("GetMapping....");
    5. return "index";
    6. }
    7. //新增的请求
    8. @PostMapping
    9. public String type2(){
    10. System.out.println("PostMapping....");
    11. return "index";
    12. }
    13. //修改
    14. @PutMapping
    15. public String type3(){
    16. System.out.println("PutMapping....");
    17. return "index";
    18. }
    19. //删除
    20. @DeleteMapping
    21. public String type4(){
    22. System.out.println("DeleteMapping....");
    23. return "index";
    24. }

     

     

    返回值

    void返回值

     

     String返回值

     

    model+String  

    页面跳转 --转发和重定向

             转发和重定向的实现方式有所不同。转发是在服务器端进行处理,服务器接收到用户的请求后,将请求转发到另一个URL,并将响应返回给用户。重定向是通过发送特定的HTTP响应代码来告诉浏览器将用户的请求重定向到另一个URL,浏览器接收到重定向响应后,会自动发送新的请求到重定向的URL。

            使用场景方面,转发适用于需要在服务器端进行一些处理后,将请求转发到其他页面或处理逻辑的情况。转发可以保持用户的URL不变,用户在浏览器中看到的URL仍然是原始的URL。重定向适用于需要将用户导航到其他页面或处理逻辑的情况,重定向会导致浏览器发送新的请求到重定向的URL,并在浏览器的地址栏中显示新的URL。 增删改都是用重定向
     

     

  • 相关阅读:
    Java发送(QQ)邮箱、验证码发送
    我耀学IT—day01-Bootstrap介绍
    Flutter高仿微信-第22篇-支付-二维码收款(二维码)
    WebRTC研究:丢包与抖动
    通过提示工程将化学知识整合到大型语言模型中
    MySQL8.0 show create view BUG解析
    JVM内存管理
    数据结构之顺序表和链表
    PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
    Linux内核——环境搭建
  • 原文地址:https://blog.csdn.net/m0_74934282/article/details/132724973