我們有的時候會在service層獲取request填充一些諸如用戶名和IP地址等信息,這個時候如果不想從Controller層傳request,可以在service直接使用
/**
*在service層獲取request
**/
public static HttpServletRequest getHttpServletRequest() {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
return request;
}
/**
* 返回服務器路徑
* @return
*/
public static String getServerPath() {
HttpServletRequest request = getHttpServletRequest();
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(request.getScheme()); //http
stringBuilder.append("://");
stringBuilder.append(request.getServerName()); //127.0.0.1
stringBuilder.append(":");
stringBuilder.append(request.getServerPort()); //8080
stringBuilder.append(request.getContextPath()); //項目名稱
return stringBuilder.toString(); //http://127.0.0.1:8080/
}