根据ServletRequestAttributes 获取前端请求方法名、参数、路径等信息

1、 根据前端请求获取方法名、参数、路径等信息

在一个方法里面如果想获取请求信息,需要从请求上下文获取request,或者在参数列表使用HttpServletRequest
request

①在方法中获取请求上下文

// 接收到请求,记录请求内容

 ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
② 获取请求request
     //接收到request
    HttpServletRequest request = attributes.getRequest();
③获取参数
    Map<String,Object> map = getParameterMap(request);
    System.out.println("我是从Map参数获取的:"+Arrays.asList(map));
④重点:getParameterMap 方法
 /**
     * 获取所有请求参数,封装为map对象
     *
     * @return
     */
    public Map<String, Object> getParameterMap(HttpServletRequest request) {
        if (request == null) {
            return null;
        }
        Enumeration<String> enumeration = request.getParameterNames();
        Map<String, Object> parameterMap = new HashMap<String, Object>();
        StringBuilder stringBuilder = new StringBuilder();
        while (enumeration.hasMoreElements()) {
            String key = enumeration.nextElement();
            String value = request.getParameter(key);
            String keyValue = key + " : " + value + " ; ";
            stringBuilder.append(keyValue);
            parameterMap.put(key, value);
        }
        return parameterMap;
    }

这样可以获取到所有信息

2、 根据前端请求request的常用API

项目基本配置如下:

server:
  port: 8090
  servlet:
    context-path: /basePath

接口访问路径:localhost:8090/basePath/abssimplefactory/factoryElectric/insertData

那么:

	//获取项目的获取项目的根路径(即项目本身的路径,即这里的context-path)
	String contextPath = request.getContextPath();
	//获取项目的根路径后的接口路径(即这里/basePath后面的部分)
	String servletPath = request.getServletPath();
	//获取"/"在机器中的实际地址
    String realPath = request.getServletContext().getRealPath("/");
    //获取根路径到地址结尾(包含根路径)
    String requestURI = request.getRequestURI();
   // 获取请求的地址链接(浏览器中输入的地址)
    String requestURL = request.getRequestURL();

打印结果:

contextPath: /basePath
servletPath: /abssimplefactory/factoryElectric/insertData
realPath: C:\Users\Admin\AppData\Local\Temp\tomcat-docbase.8044651288221446750.8090
requestURI: /basePath/abssimplefactory/factoryElectric/insertData
requestURL: http://localhost:8090/basePath/abssimplefactory/factoryElectric/insertData

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神雕大侠mu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值