ServletUtils.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. package com.ruoyi.common.utils;
  2. import cn.hutool.core.convert.Convert;
  3. import cn.hutool.extra.servlet.ServletUtil;
  4. import cn.hutool.http.HttpStatus;
  5. import lombok.AccessLevel;
  6. import lombok.NoArgsConstructor;
  7. import org.springframework.http.MediaType;
  8. import org.springframework.web.context.request.RequestAttributes;
  9. import org.springframework.web.context.request.RequestContextHolder;
  10. import org.springframework.web.context.request.ServletRequestAttributes;
  11. import javax.servlet.http.HttpServletRequest;
  12. import javax.servlet.http.HttpServletResponse;
  13. import javax.servlet.http.HttpSession;
  14. import java.io.IOException;
  15. import java.nio.charset.StandardCharsets;
  16. /**
  17. * 客户端工具类
  18. *
  19. * @author ruoyi
  20. */
  21. @NoArgsConstructor(access = AccessLevel.PRIVATE)
  22. public class ServletUtils extends ServletUtil {
  23. /**
  24. * 获取String参数
  25. */
  26. public static String getParameter(String name) {
  27. return getRequest().getParameter(name);
  28. }
  29. /**
  30. * 获取String参数
  31. */
  32. public static String getParameter(String name, String defaultValue) {
  33. return Convert.toStr(getRequest().getParameter(name), defaultValue);
  34. }
  35. /**
  36. * 获取Integer参数
  37. */
  38. public static Integer getParameterToInt(String name) {
  39. return Convert.toInt(getRequest().getParameter(name));
  40. }
  41. /**
  42. * 获取Integer参数
  43. */
  44. public static Integer getParameterToInt(String name, Integer defaultValue) {
  45. return Convert.toInt(getRequest().getParameter(name), defaultValue);
  46. }
  47. /**
  48. * 获取Boolean参数
  49. */
  50. public static Boolean getParameterToBool(String name) {
  51. return Convert.toBool(getRequest().getParameter(name));
  52. }
  53. /**
  54. * 获取Boolean参数
  55. */
  56. public static Boolean getParameterToBool(String name, Boolean defaultValue) {
  57. return Convert.toBool(getRequest().getParameter(name), defaultValue);
  58. }
  59. /**
  60. * 获取request
  61. */
  62. public static HttpServletRequest getRequest() {
  63. return getRequestAttributes().getRequest();
  64. }
  65. /**
  66. * 获取response
  67. */
  68. public static HttpServletResponse getResponse() {
  69. return getRequestAttributes().getResponse();
  70. }
  71. /**
  72. * 获取session
  73. */
  74. public static HttpSession getSession() {
  75. return getRequest().getSession();
  76. }
  77. public static ServletRequestAttributes getRequestAttributes() {
  78. RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
  79. return (ServletRequestAttributes) attributes;
  80. }
  81. /**
  82. * 将字符串渲染到客户端
  83. *
  84. * @param response 渲染对象
  85. * @param string 待渲染的字符串
  86. */
  87. public static void renderString(HttpServletResponse response, String string) {
  88. try {
  89. response.setStatus(HttpStatus.HTTP_OK);
  90. response.setContentType(MediaType.APPLICATION_JSON_VALUE);
  91. response.setCharacterEncoding(StandardCharsets.UTF_8.toString());
  92. response.getWriter().print(string);
  93. } catch (IOException e) {
  94. e.printStackTrace();
  95. }
  96. }
  97. /**
  98. * 是否是Ajax异步请求
  99. *
  100. * @param request
  101. */
  102. public static boolean isAjaxRequest(HttpServletRequest request) {
  103. String accept = request.getHeader("accept");
  104. if (accept != null && accept.contains("application/json")) {
  105. return true;
  106. }
  107. String xRequestedWith = request.getHeader("X-Requested-With");
  108. if (xRequestedWith != null && xRequestedWith.contains("XMLHttpRequest")) {
  109. return true;
  110. }
  111. String uri = request.getRequestURI();
  112. if (StringUtils.equalsAnyIgnoreCase(uri, ".json", ".xml")) {
  113. return true;
  114. }
  115. String ajax = request.getParameter("__ajax");
  116. return StringUtils.equalsAnyIgnoreCase(ajax, "json", "xml");
  117. }
  118. public static String getClientIP() {
  119. return getClientIP(getRequest());
  120. }
  121. }