springweb获取请求数据、spring中拦截器

2024-08-31 11:12

本文主要是介绍springweb获取请求数据、spring中拦截器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SpringWeb获取请求数据

springWeb支持多种类型的请求参数进行封装

1、使用HttpServletRequest对象接收

 @PostMapping(path = "/login")//post请求//spring自动注入public String login(HttpServletRequest request){  System.out.println(request.getParameter("account"));return "success";}

2、spring自动封装,

@PostMapping(path = "/login")//post请求public String login(String account,String password){return "success";}

3、前端请求参数需要后端形参名一致Spring 会自定进行数据封装,如果不一致需要使用@RequestParam进行参数绑定,@RequestHeader用来接收请求头中的数据

/*@PostMapping(path = "/login")//post请求//spring自动注入//前后端参数名称一致是@RequestParam进行绑定,请求体用@RequestHeaderpublic String login(@RequestParam("account1") String account, Integer password, @RequestHeader String token){System.out.println("登录");return "success";}*/

4、使用实体类接收数据

@RequestBody可以接收前端响应的json格式的数据封装到对象里

 @PostMapping(path = "/login")//post请求public Result login(@RequestBody Admin admin, @RequestHeader String token){Admin admin1= loginService.login(admin);Result result=new Result(200,"登录成功",admin1);return result;}

需要添加json组件

<!--jackson-->
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.14.2</version>
</dependency>

5、日期转换类型

@DateTimeFormat(pattern = "yyyy-MM-dd")//接收前端数据提交发送的日期格式
@JsonFormat(pattern = "yyyy-MM-dd")//向前端响应转json时i使用的
private Date birthday;

拦截器

Spring WEB 中的拦截器(Interceptor)类似于 Servlet 中的过滤器(Filter),
它主要用于拦截用户请求并作相应的处理。
Spring 中的拦截器与过滤器有着本质的区别,过滤器是 servlet 规范中定义并实
现的,在进入到 servlet 之前截获请求.而拦截器是 spring 中定义的一种拦截机制,
是对进入到处理器的请求进行拦截.
ac47bc31ca1245ab81c61ce86b8bcbe7.png
SpringWEB 定义了拦截器接口 HandlerInterceptor
调用这个三个方法的时候,其参数的值也是从框架内部传递进来的。
boolean preHandle
预处理方法,实现处理器方法的预处理,就是在处理器方法执行之前这个方法会
被执行,相当于拦截了处理器方法,框架会传递请求和响应对象给该方法,第三
个参数为被拦截的处理器。如果 preHandle 方法返回 true 表示继续流程(如调
用下一个拦截器或处理器方法),返回 false 表示流程中断,不会继续调用其他
的拦截器或处理器方法,此时我们需要通过 response 来产生响应;

 

拦截器的实现

编写一个类继承HandlerInterceptorAdapter

 

package com.ffyc.ssm.interceptor;import com.fasterxml.jackson.databind.ObjectMapper;
import com.ffyc.ssm.model.Result;
import org.springframework.web.servlet.HandlerInterceptor;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class AdminTokenInterceptor implements HandlerInterceptor {/*实现HandlerInterceptor接口,重写preHandle* 拦截器处理方法,当请求到达处理器前,进入拦截器处理* 返回true离开拦截器向后执行到达处理器Controller* 返回false不在向后执行*/@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {String adminToken=request.getHeader("adminToken");if (adminToken.equals("1234567")){return  true;}else {Result result=new Result(401,"token验证失败",null);response.getWriter().write(new ObjectMapper().writeValueAsString(result));}return false;}
}

注册拦截器,在spring.xml中

<!-- 配置拦截器--><mvc:interceptors><mvc:interceptor><mvc:mapping path="/**"/><!--定义进去拦截器的地址--><mvc:exclude-mapping path="/loginCtl/login"/><!--定义不进去拦截器的地址--><bean id="admintoken" class="com.ffyc.ssm.interceptor.AdminTokenInterceptor"></bean><!----></mvc:interceptor></mvc:interceptors>

 

 

这篇关于springweb获取请求数据、spring中拦截器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1123738

相关文章

golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法

《golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法》:本文主要介绍golang获取当前时间、时间戳和时间字符串及它们之间的相互转换,本文通过实例代码给大家介绍的非常详细,感兴趣... 目录1、获取当前时间2、获取当前时间戳3、获取当前时间的字符串格式4、它们之间的相互转化上篇文章给大家介

Java Predicate接口定义详解

《JavaPredicate接口定义详解》Predicate是Java中的一个函数式接口,它代表一个判断逻辑,接收一个输入参数,返回一个布尔值,:本文主要介绍JavaPredicate接口的定义... 目录Java Predicate接口Java lamda表达式 Predicate<T>、BiFuncti

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

AJAX请求上传下载进度监控实现方式

《AJAX请求上传下载进度监控实现方式》在日常Web开发中,AJAX(AsynchronousJavaScriptandXML)被广泛用于异步请求数据,而无需刷新整个页面,:本文主要介绍AJAX请... 目录1. 前言2. 基于XMLHttpRequest的进度监控2.1 基础版文件上传监控2.2 增强版多

Spring Security方法级安全控制@PreAuthorize注解的灵活运用小结

《SpringSecurity方法级安全控制@PreAuthorize注解的灵活运用小结》本文将带着大家讲解@PreAuthorize注解的核心原理、SpEL表达式机制,并通过的示例代码演示如... 目录1. 前言2. @PreAuthorize 注解简介3. @PreAuthorize 核心原理解析拦截与

一文详解JavaScript中的fetch方法

《一文详解JavaScript中的fetch方法》fetch函数是一个用于在JavaScript中执行HTTP请求的现代API,它提供了一种更简洁、更强大的方式来处理网络请求,:本文主要介绍Jav... 目录前言什么是 fetch 方法基本语法简单的 GET 请求示例代码解释发送 POST 请求示例代码解释

Java图片压缩三种高效压缩方案详细解析

《Java图片压缩三种高效压缩方案详细解析》图片压缩通常涉及减少图片的尺寸缩放、调整图片的质量(针对JPEG、PNG等)、使用特定的算法来减少图片的数据量等,:本文主要介绍Java图片压缩三种高效... 目录一、基于OpenCV的智能尺寸压缩技术亮点:适用场景:二、JPEG质量参数压缩关键技术:压缩效果对比

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr