spring拦截器传递传递参数到controller+Aop切面环绕方法传递参数到目标方法

您所在的位置:网站首页 spring拦截器获取参数 spring拦截器传递传递参数到controller+Aop切面环绕方法传递参数到目标方法

spring拦截器传递传递参数到controller+Aop切面环绕方法传递参数到目标方法

2023-09-08 16:28| 来源: 网络整理| 查看: 265

一.前言

由于业务需要,在网上找了很久得到了这两种方式。本文代码偏少,主要讲解一下怎么传,如何接收,也记录一下,以便之后查看。

二.Spring拦截器传递参数到controller

下面是我拦截器中的代码,preHandle中设置变量,然后在controller中得到 1,变量放在request请求域中,request.setAttribute(“getAttribute”, “getAttribute”); 2,变量放在全局Servlet Context中,request.getServletContext().setAttribute(“getServletContext”, “getServletContext”); 3,变量放在request的请求头中,在controller中在到请求头header中得到数据

@Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws RRException { //把变量放在request请求域中,仅可以被这次请求,即同一个requerst使用 request.setAttribute("getAttribute", "getAttribute"); //放在全局的ServletContext中,每一个web应用拥有一个ServletContext,是全局对象,具体请百度 //把变量放在这里面,在之后什么地方都可以访问 request.getServletContext().setAttribute("getServletContext", "getServletContext"); //把自己的变量放在头部 reflectSetHeader(request, "header", "header"); return true; } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("拦截器之后输出ServletContext中保存的数据:"+request.getServletContext().getAttribute("getServletContext")); } //把自己想要的信息设置到header头部,就相当于是在request的请求头部添加一个键值对,保存自己的数据 private void reflectSetHeader(HttpServletRequest request, String key, String value){ Class


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3