package com.shove.util; import java.io.File; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; /** * * @Description * @Author Yang Cheng * @Date: Feb 9, 2012 2:03:44 AM * @Version * */ public class ServletUtils { /** * @Description: 获取根目录 * @Author Yang Cheng * @Date: Feb 9, 2012 2:07:30 AM * @return * @return String */ public static String serverRootDirectory() { return ServletActionContext.getServletContext().getRealPath(File.separator); } /** * @Description: 获取请求地址 * @Author Yang Cheng * @Date: Feb 9, 2012 2:08:15 AM * @return * @return String */ public static String serverUrl() { HttpServletRequest request = ServletActionContext.getRequest(); String temp = request.getServerPort() == 80 ? "" : ":" + request.getServerPort(); return request.getScheme() + "://" + request.getServerName() + temp + request.getContextPath() + "/"; } /** * @Description: 获取当前请求的URL地址域参数 * @Author Yang Cheng * @Date: Feb 9, 2012 2:10:02 AM * @param request * @return * @return String */ @SuppressWarnings("unchecked") public static Map<String, Object> getPrams(HttpServletRequest request) { Map<String, Object> params = new HashMap<String, Object>(); Map<String, Object> requestParams = request.getParameterMap(); for (Iterator<String> iter = requestParams.keySet().iterator(); iter.hasNext();) { String name = iter.next(); String[] values = (String[]) requestParams.get(name); String valueStr = ""; for (int i = 0; i < values.length; i++) { valueStr = (i == values.length - 1) ? valueStr + values[i] : valueStr + values[i] + ","; } params.put(name, valueStr); } return params; } public static String getRemortIp() { HttpServletRequest request = ServletActionContext.getRequest(); if (request.getHeader("x-forwarded-for") == null) { return request.getRemoteAddr(); } return request.getHeader("x-forwarded-for"); } public static String getIpAddress(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); String localIP = "127.0.0.1"; if ((ip == null) || (ip.length() == 0) || (ip.equalsIgnoreCase(localIP)) || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if ((ip == null) || (ip.length() == 0) || (ip.equalsIgnoreCase(localIP)) || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if ((ip == null) || (ip.length() == 0) || (ip.equalsIgnoreCase(localIP)) || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip; } }