Web操作工具类
package com.zhangsx.util.web;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Web相关的工具方法。 * 提供获取用户的实际IP地址、获取请求中指定名称的Cookie、失效掉指定名称的Cookie。 * * @version 1.00 2010-1-15 * @since 1.5 * @author ZhangShixi */public class WebUtil { /** * 获取实际用户的ip访问地址。 * @param request Http请求。 * @return 客户端ip地址。 */ public static String getIpAddress(HttpServletRequest request) { if (request == null) { return null; } String ips = request.getHeader("x-forwarded-for"); if (ips == null || ips.isEmpty() || "unknown".equalsIgnoreCase(ips)) { ips = request.getHeader("Proxy-Client-IP"); } if (ips == null || ips.isEmpty() || "unknown".equalsIgnoreCase(ips)) { ips = request.getHeader("WL-Proxy-Client-IP"); } if (ips == null || ips.isEmpty() || "unknown".equalsIgnoreCase(ips)) { ips = request.getRemoteAddr(); } String[] ipArray = ips.split(","); String clientIp = null; for (String ip : ipArray) { if (!"unknown".equalsIgnoreCase(ip)) { clientIp = ip; break; } } return clientIp; } /** * 获取请求中指定的名称的Cookie。 * @param request Http请求。 * @param name cookie名称。 * @return 如果请求中有相应名称的Cookie,则返回相应的Cookie实例;否则返回null。 */ public static Cookie getCookie(HttpServletRequest request, String name) { if (request == null || name == null || name.isEmpty()) { return null; } Cookie[] cookies = request.getCookies(); if (cookies != null && cookies.length > 0) { for (Cookie cookie : cookies) { if (cookie != null && name.equals(cookie.getName())) { return cookie; } } } return null; } /** * 失效掉指定名称的Cookie。 * @param request 请求。 * @param response 相应。 * @param name cookie名称。 */ public static void invalidCookie( HttpServletRequest request,HttpServletResponse response, String name) { if (request == null || response == null || name == null || name.isEmpty()) { return; } Cookie cookie = getCookie(request, name); if (cookie != null) { cookie.setMaxAge(0); cookie.setPath(request.getContextPath()); response.addCookie(cookie); } }}?