1、 根据前端请求获取方法名、参数、路径等信息
在一个方法里面如果想获取请求信息,需要从请求上下文获取request,或者在参数列表使用HttpServletRequest
request
①在方法中获取请求上下文
// 接收到请求,记录请求内容
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
② 获取请求request
//接收到request
HttpServletRequest request = ();
③获取参数
Map<String,Object> map = getParameterMap(request);
("我是从Map参数获取的:"+(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