From 2023de973e6adb490bba962b1d830fd8e4be9418 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期五, 13 一月 2023 23:22:30 +0800 Subject: [PATCH] update 适配 新序列化注解 --- ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java | 171 +++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 119 insertions(+), 52 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java index ab9ebcf..fd57842 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java @@ -1,136 +1,203 @@ package com.ruoyi.common.utils; -import java.io.IOException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import cn.hutool.core.convert.Convert; +import cn.hutool.extra.servlet.JakartaServletUtil; +import cn.hutool.http.HttpStatus; +import com.ruoyi.common.constant.Constants; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; +import org.springframework.http.MediaType; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; -import com.ruoyi.common.core.text.Convert; + +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; /** * 瀹㈡埛绔伐鍏风被 - * + * * @author ruoyi */ -public class ServletUtils -{ +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class ServletUtils extends JakartaServletUtil { + /** * 鑾峰彇String鍙傛暟 */ - public static String getParameter(String name) - { + public static String getParameter(String name) { return getRequest().getParameter(name); } /** * 鑾峰彇String鍙傛暟 */ - public static String getParameter(String name, String defaultValue) - { + public static String getParameter(String name, String defaultValue) { return Convert.toStr(getRequest().getParameter(name), defaultValue); } /** * 鑾峰彇Integer鍙傛暟 */ - public static Integer getParameterToInt(String name) - { + public static Integer getParameterToInt(String name) { return Convert.toInt(getRequest().getParameter(name)); } /** * 鑾峰彇Integer鍙傛暟 */ - public static Integer getParameterToInt(String name, Integer defaultValue) - { + public static Integer getParameterToInt(String name, Integer defaultValue) { return Convert.toInt(getRequest().getParameter(name), defaultValue); + } + + /** + * 鑾峰彇Boolean鍙傛暟 + */ + public static Boolean getParameterToBool(String name) { + return Convert.toBool(getRequest().getParameter(name)); + } + + /** + * 鑾峰彇Boolean鍙傛暟 + */ + public static Boolean getParameterToBool(String name, Boolean defaultValue) { + return Convert.toBool(getRequest().getParameter(name), defaultValue); + } + + /** + * 鑾峰緱鎵�鏈夎姹傚弬鏁� + * + * @param request 璇锋眰瀵硅薄{@link ServletRequest} + * @return Map + */ + public static Map<String, String[]> getParams(ServletRequest request) { + final Map<String, String[]> map = request.getParameterMap(); + return Collections.unmodifiableMap(map); + } + + /** + * 鑾峰緱鎵�鏈夎姹傚弬鏁� + * + * @param request 璇锋眰瀵硅薄{@link ServletRequest} + * @return Map + */ + public static Map<String, String> getParamMap(ServletRequest request) { + Map<String, String> params = new HashMap<>(); + for (Map.Entry<String, String[]> entry : getParams(request).entrySet()) { + params.put(entry.getKey(), StringUtils.join(entry.getValue(), ",")); + } + return params; } /** * 鑾峰彇request */ - public static HttpServletRequest getRequest() - { + public static HttpServletRequest getRequest() { return getRequestAttributes().getRequest(); } /** * 鑾峰彇response */ - public static HttpServletResponse getResponse() - { + public static HttpServletResponse getResponse() { return getRequestAttributes().getResponse(); } /** * 鑾峰彇session */ - public static HttpSession getSession() - { + public static HttpSession getSession() { return getRequest().getSession(); } - public static ServletRequestAttributes getRequestAttributes() - { + public static ServletRequestAttributes getRequestAttributes() { RequestAttributes attributes = RequestContextHolder.getRequestAttributes(); return (ServletRequestAttributes) attributes; } /** * 灏嗗瓧绗︿覆娓叉煋鍒板鎴风 - * + * * @param response 娓叉煋瀵硅薄 - * @param string 寰呮覆鏌撶殑瀛楃涓� - * @return null + * @param string 寰呮覆鏌撶殑瀛楃涓� */ - public static String renderString(HttpServletResponse response, String string) - { - try - { - response.setStatus(200); - response.setContentType("application/json"); - response.setCharacterEncoding("utf-8"); + public static void renderString(HttpServletResponse response, String string) { + try { + response.setStatus(HttpStatus.HTTP_OK); + response.setContentType(MediaType.APPLICATION_JSON_VALUE); + response.setCharacterEncoding(StandardCharsets.UTF_8.toString()); response.getWriter().print(string); - } - catch (IOException e) - { + } catch (IOException e) { e.printStackTrace(); } - return null; } /** * 鏄惁鏄疉jax寮傛璇锋眰 - * + * * @param request */ - public static boolean isAjaxRequest(HttpServletRequest request) - { + public static boolean isAjaxRequest(HttpServletRequest request) { + String accept = request.getHeader("accept"); - if (accept != null && accept.indexOf("application/json") != -1) - { + if (accept != null && accept.contains(MediaType.APPLICATION_JSON_VALUE)) { return true; } String xRequestedWith = request.getHeader("X-Requested-With"); - if (xRequestedWith != null && xRequestedWith.indexOf("XMLHttpRequest") != -1) - { + if (xRequestedWith != null && xRequestedWith.contains("XMLHttpRequest")) { return true; } String uri = request.getRequestURI(); - if (StringUtils.inStringIgnoreCase(uri, ".json", ".xml")) - { + if (StringUtils.equalsAnyIgnoreCase(uri, ".json", ".xml")) { return true; } String ajax = request.getParameter("__ajax"); - if (StringUtils.inStringIgnoreCase(ajax, "json", "xml")) - { - return true; - } - return false; + return StringUtils.equalsAnyIgnoreCase(ajax, "json", "xml"); } + + public static String getClientIP() { + return getClientIP(getRequest()); + } + + /** + * 鍐呭缂栫爜 + * + * @param str 鍐呭 + * @return 缂栫爜鍚庣殑鍐呭 + */ + public static String urlEncode(String str) { + try { + return URLEncoder.encode(str, Constants.UTF8); + } catch (UnsupportedEncodingException e) { + return StringUtils.EMPTY; + } + } + + /** + * 鍐呭瑙g爜 + * + * @param str 鍐呭 + * @return 瑙g爜鍚庣殑鍐呭 + */ + public static String urlDecode(String str) { + try { + return URLDecoder.decode(str, Constants.UTF8); + } catch (UnsupportedEncodingException e) { + return StringUtils.EMPTY; + } + } + } -- Gitblit v1.9.3