這裡記錄一下開發webservice接口需要擷取用戶端IP之類的需求擷取HTTPRequest執行個體對象,本人也是看了好多部落格,發現很多都是沒有什麼卵用的。OK,說正事。
用的是xfire的一個包(截圖中有具體到那個包):
import org.codehaus.xfire.transport.http.XFireServletController;
HttpServletRequest request = XFireServletController.getRequest();

附擷取IP方法:
public static String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknow".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}