客户端数据处理
import java.util.HashMap;
import java.util.Map;
public class RequestInfo {
private static ThreadLocal<Map<String, Object>> request = new ThreadLocal<Map<String, Object>>();
public static void put(String key, Object value) {
Map<String, Object> requestContext = request.get();
if (null == requestContext) {
requestContext = new HashMap<String, Object>();
request.set(requestContext);
}
requestContext.put(key, value);
}
public static Object get(String key) {
Map<String, Object> requestContext = request.get();
return requestContext == null ? null : requestContext.get(key);
}
public static Map<String,Object> getAll()
{
return request.get();
}
public static void clear()
{
Map<String,Object> requestContent=request.get();
requestContent.clear();
}
}
拦截器实现
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Enumeration;
public class ClientInfoInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handle) {
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
String name = (String) headerNames.nextElement();
RequestInfo.put(name, request.getHeader(name));
}
return true;
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handle, Exception ex) throws Exception {
RequestInfo.clear();
}
}
拦截器配置
import com.qhsl.client.center.interceptor.ClientInfoInterceptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
private static final Logger logger = LoggerFactory.getLogger(WebMvcConfig.class);
@Override
public void addInterceptors(InterceptorRegistry registry)
{
registry.addInterceptor(new ClientInfoInterceptor()).addPathPatterns("/test/**");
}
}