同步操作将从 TSAI/JavaWeb Tutorial 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package common;import java.io.BufferedReader;import java.io.IOException;import java.util.Map;import java.util.Set;import java.util.Map.Entry;import java.util.logging.Logger;import javax.servlet.http.HttpServletRequest;import com.alibaba.fastjson2.JSONObject;/*** 请求工具类* @author Uncle Qinshan*/public class RequestUtils {private static Logger logger = Logger.getGlobal();/*** GET 参数获取* @param request* @return* @throws Exception*/public static JSONObject getMethodParams(HttpServletRequest request) throws Exception {JSONObject params = new JSONObject();Map<String, String[]> map = request.getParameterMap();Set<Entry<String, String[]>> set = map.entrySet();for(Entry<String, String[]> entry:set) {params.put(entry.getKey(), entry.getValue()[0]);}return params;}/*** POST 参数获取* @param request* @return* @throws IOException*/public static JSONObject postMethodData(HttpServletRequest request) throws Exception {BufferedReader reader = request.getReader();StringBuffer str = new StringBuffer();String line = null;while((line = reader.readLine())!=null) {str.append(new String(line.getBytes(),"utf-8"));}JSONObject params = JSONObject.parseObject(str.toString());return params;}/*** IP-获取真实的IP地址* <p>一般情况下,我们普通获取IP地址的方法就是:</p>* <pre>* request.getRemoteAddr();* </pre>* <p>* 如果通过了 Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。* 经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的 IP,* 服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的HTTP头信息中,* 增加了X-FORWARDED-FOR信息。用以跟踪 原有的客户端IP地址和原来客户端请求的服务器地址。* </p>* <p>* HttpServletRequest在有多层代理情况下获取真实IP,那么X-Forwarded-For的值并不止* 一个,而是一串IP值,是取X-Forwarded-For中第一个非unknown的有效IP字符串就是真实的客户* 请求地址。* </p>* @param request* @return* @throws IOException*/public final static String getIpAddress(HttpServletRequest request) throws IOException {/*获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址 */String ip = request.getHeader("X-Forwarded-For");logger.info("getIpAddress(HttpServletRequest) - X-Forwarded-For - String ip=" + ip);if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("Proxy-Client-IP");logger.info("getIpAddress(HttpServletRequest) - Proxy-Client-IP - String ip=" + ip);}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("WL-Proxy-Client-IP");logger.info("getIpAddress(HttpServletRequest) - WL-Proxy-Client-IP - String ip=" + ip);}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("HTTP_CLIENT_IP");logger.info("getIpAddress(HttpServletRequest) - HTTP_CLIENT_IP - String ip=" + ip);}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("HTTP_X_FORWARDED_FOR");logger.info("getIpAddress(HttpServletRequest) - HTTP_X_FORWARDED_FOR - String ip=" + ip);}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getRemoteAddr();logger.info("getIpAddress(HttpServletRequest) - getRemoteAddr - String ip=" + ip);}} else if (ip.length() > 15) {String[] ips = ip.split(",");for (int index = 0; index < ips.length; index++) {String strIp = (String) ips[index];if (! ("unknown".equalsIgnoreCase(strIp))) {ip = strIp;break;}}}return ip;}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。