WEB操作类

Java代码   复制代码   收藏代码
  1. package com.zhangsx.util.web;
  2. import javax.servlet.http.Cookie;
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5. /**
  6. * Web相关的工具方法。
  7. * 提供获取用户的实际IP地址、获取请求中指定名称的Cookie、失效掉指定名称的Cookie。
  8. *
  9. * @version 1.00 2010-1-15
  10. * @since 1.5
  11. * @author ZhangShixi
  12. */
  13. public class WebUtil {
  14. /**
  15. * 获取实际用户的ip访问地址。
  16. * @param request Http请求。
  17. * @return 客户端ip地址。
  18. */
  19. public static String getIpAddress(HttpServletRequest request) {
  20. if (request == null) {
  21. return null;
  22. }
  23. String ips = request.getHeader("x-forwarded-for");
  24. if (ips == null || ips.isEmpty() || "unknown".equalsIgnoreCase(ips)) {
  25. ips = request.getHeader("Proxy-Client-IP");
  26. }
  27. if (ips == null || ips.isEmpty() || "unknown".equalsIgnoreCase(ips)) {
  28. ips = request.getHeader("WL-Proxy-Client-IP");
  29. }
  30. if (ips == null || ips.isEmpty() || "unknown".equalsIgnoreCase(ips)) {
  31. ips = request.getRemoteAddr();
  32. }
  33. String[] ipArray = ips.split(",");
  34. String clientIp = null;
  35. for (String ip : ipArray) {
  36. if (!"unknown".equalsIgnoreCase(ip)) {
  37. clientIp = ip;
  38. break;
  39. }
  40. }
  41. return clientIp;
  42. }
  43. /**
  44. * 获取请求中指定的名称的Cookie。
  45. * @param request Http请求。
  46. * @param name cookie名称。
  47. * @return 如果请求中有相应名称的Cookie,则返回相应的Cookie实例;否则返回null。
  48. */
  49. public static Cookie getCookie(HttpServletRequest request, String name) {
  50. if (request == null || name == null || name.isEmpty()) {
  51. return null;
  52. }
  53. Cookie[] cookies = request.getCookies();
  54. if (cookies != null && cookies.length > 0) {
  55. for (Cookie cookie : cookies) {
  56. if (cookie != null && name.equals(cookie.getName())) {
  57. return cookie;
  58. }
  59. }
  60. }
  61. return null;
  62. }
  63. /**
  64. * 失效掉指定名称的Cookie。
  65. * @param request 请求。
  66. * @param response 相应。
  67. * @param name cookie名称。
  68. */
  69. public static void invalidCookie(
  70. HttpServletRequest request,HttpServletResponse response, String name) {
  71. if (request == null || response == null || name == null || name.isEmpty()) {
  72. return;
  73. }
  74. Cookie cookie = getCookie(request, name);
  75. if (cookie != null) {
  76. cookie.setMaxAge(0);
  77. cookie.setPath(request.getContextPath());
  78. response.addCookie(cookie);
  79. }
  80. }
  81. }

你可能感兴趣的:(WEB操作类)