本文主要是介绍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;
拦截器
拦截器的实现
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中拦截器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!