From a06e2ee872f15d747069645243341bd81c36e236 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 17 七月 2024 09:42:45 +0800
Subject: [PATCH] 1

---
 src/main/java/com/se/simu/helper/WebHelper.java |  328 ++++++++++++++++++------------------------------------
 1 files changed, 110 insertions(+), 218 deletions(-)

diff --git a/src/main/java/com/se/simu/helper/WebHelper.java b/src/main/java/com/se/simu/helper/WebHelper.java
index ba734c7..08db9f8 100644
--- a/src/main/java/com/se/simu/helper/WebHelper.java
+++ b/src/main/java/com/se/simu/helper/WebHelper.java
@@ -6,20 +6,16 @@
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
-import javax.servlet.ServletContext;
 import javax.servlet.ServletOutputStream;
-import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-import java.io.BufferedReader;
 import java.io.FileInputStream;
-import java.io.InputStreamReader;
 import java.io.PrintWriter;
 import java.net.InetAddress;
 import java.net.URLEncoder;
 import java.net.UnknownHostException;
 import java.sql.Timestamp;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -30,15 +26,23 @@
  */
 @Slf4j
 public class WebHelper {
+    public final static String POINT = ".";
+
     private final static String COMMA = ",";
 
     private final static String UNKNOWN = "unknown";
 
-    public final static String TOKEN_KEY = "token";
+    /**
+     * 鏍煎紡鍖栧綋鍓嶇郴缁熸棩鏈� 4
+     */
+    public static final SimpleDateFormat YMDHMS = new SimpleDateFormat("yyyyMMddHHmmss");
 
-    public final static String TOKEN_COOKIE_KEY = "token";
-
-    public final static int COOKIE_MAX_AGE = 4 * 60 * 60;
+    /**
+     * 瀛楃涓�,鏄惁涓虹┖null鍜岀┖鏍�
+     */
+    public static boolean isEmpty(String str) {
+        return null == str || "".equals(str.trim());
+    }
 
     /**
      * 鑾峰彇GUID
@@ -114,131 +118,6 @@
     }
 
     /**
-     * 鑾峰彇褰撳墠鏃堕棿鎸囧畾鍒嗛挓鏁板悗鐨凾imestamp
-     */
-    public static Timestamp getTimestamp(int min) {
-        Calendar now = Calendar.getInstance();
-        now.add(Calendar.MINUTE, min);
-
-        return new Timestamp(now.getTimeInMillis());
-    }
-
-    /**
-     * 浠嶤ookie涓幏鍙杢oken
-     */
-    public static String getTokenFromCookie(HttpServletRequest request) {
-        Cookie[] cookies = request.getCookies();
-        if (cookies == null || cookies.length == 0) {
-            return null;
-        }
-
-        for (Cookie cookie : cookies) {
-            switch (cookie.getName()) {
-                case TOKEN_COOKIE_KEY:
-                    return cookie.getValue();
-                default:
-                    break;
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * 鍚慍ookie涓坊鍔爐oken
-     */
-    public static void saveToken2Cookie(String token, HttpServletRequest request, HttpServletResponse response) {
-        // 鍏堝垹闄�
-        deleteCookies(request, response);
-
-        // 鍐嶄繚瀛�
-        saveCookie(TOKEN_COOKIE_KEY, token, response);
-    }
-
-    /**
-     * 淇濆瓨Cookie
-     */
-    public static void saveCookie(String key, String value, HttpServletResponse response) {
-        Cookie cookie = new Cookie(key, value);
-        // 璁剧疆cookie澶辨晥鏃堕棿锛屽崟浣嶄负绉�
-        cookie.setMaxAge(COOKIE_MAX_AGE);
-        cookie.setHttpOnly(false);
-        cookie.setPath("/");
-        //cookie.setDomain("*")
-
-        response.setHeader("P3P", "CP=CAO PSA OUR");
-        response.addCookie(cookie);
-    }
-
-    /**
-     * 鍒犻櫎cookie涓殑鍊�
-     */
-    public static void deleteCookie(String cookieKey, HttpServletRequest request, HttpServletResponse response) {
-        Cookie[] cookies = request.getCookies();
-        if (cookies != null && cookies.length > 0) {
-            for (Cookie c : cookies) {
-                if (cookieKey.equalsIgnoreCase(c.getName())) {
-                    c.setMaxAge(0);
-                    c.setPath("/");
-                    response.addCookie(c);
-                }
-            }
-        }
-    }
-
-    /**
-     * 鍒犻櫎鎵�鏈塁ookie
-     */
-    public static void deleteCookies(HttpServletRequest request, HttpServletResponse response) {
-        Cookie[] cookies = request.getCookies();
-        if (cookies != null && cookies.length > 0) {
-            for (Cookie c : cookies) {
-                c.setMaxAge(0);
-                c.setPath("/");
-                response.addCookie(c);
-            }
-        }
-    }
-
-    /**
-     * 鏍规嵁閿幏鍙朇ookie鍊�
-     */
-    public static String getCookieByKey(String key, HttpServletRequest request) {
-        Cookie[] cookies = request.getCookies();
-        if (cookies == null || cookies.length == 0) {
-            return null;
-        }
-
-        for (Cookie c : cookies) {
-            if (key.equals(c.getName())) {
-                return c.getValue();
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * 鑾峰彇Token
-     */
-    public static String getToken(HttpServletRequest request) {
-        // 1.浠巙rl鍙傛暟涓紝鑾峰彇token
-        String token = request.getParameter(TOKEN_KEY);
-
-        // 2.涓虹┖锛屽垯浠巋eader閲岃幏鍙�
-        if (token == null) {
-            token = request.getHeader(TOKEN_KEY);
-        }
-
-        // 3.杩樹负绌猴紝鍒欎粠cookie閲岃幏鍙�
-        if (token == null) {
-            token = getTokenFromCookie(request);
-        }
-
-        return token;
-    }
-
-    /**
      * 鑾峰彇Request
      */
     public static HttpServletRequest getRequest() {
@@ -254,23 +133,6 @@
         ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
 
         return servletRequestAttributes.getResponse();
-    }
-
-    /**
-     * 鑾峰彇Session
-     */
-    public static HttpSession getSession() {
-        return getRequest().getSession();
-    }
-
-    /**
-     * 鑾峰彇鐪熷疄璺緞
-     */
-    public static String getRealPath(String path) {
-        HttpServletRequest req = getRequest();
-        ServletContext ctx = req.getSession().getServletContext();
-
-        return ctx.getRealPath("/" + path);
     }
 
     /**
@@ -349,8 +211,8 @@
      * @throws Exception 寮傚父
      */
     public static void download(String file, String fileName, boolean inline, HttpServletResponse res) throws Exception {
-        if (StringHelper.isEmpty(fileName)) {
-            fileName = StringHelper.YMDHMS2_FORMAT.format(new Date());
+        if (isEmpty(fileName)) {
+            fileName = YMDHMS.format(new Date());
         }
         fileName = URLEncoder.encode(fileName, "UTF-8").replace("+", "%20");
         String dispose = inline ? "inline" : "attachment";
@@ -361,8 +223,8 @@
         res.setCharacterEncoding("UTF-8");
 
         // 閫氳繃response瀵硅薄璁剧疆鍝嶅簲鏁版嵁鏍煎紡(濡傦細"text/plain; charset=utf-8")
-        String ext = FileHelper.getExtension(file);
-        String mime = FileHelper.getMime(ext);
+        String ext = getExtension(file);
+        String mime = getMime(ext);
         res.setContentType(mime);
 
         // 閫氳繃response瀵硅薄锛岃幏鍙栧埌杈撳嚭娴�
@@ -384,75 +246,105 @@
     }
 
     /**
-     * 鎵ц鍛戒护
-     *
-     * @param cmd 鍛戒护
+     * 鑾峰彇鏂囦欢鎵╁睍鍚�
      */
-    public static void exec(String cmd) {
-        try {
-            Runtime.getRuntime().exec(cmd);
-        } catch (Exception ex) {
-            log.error(ex.getMessage(), ex);
+    public static String getExtension(String fileName) {
+        if (isEmpty(fileName)) {
+            return "";
         }
+
+        int idx = fileName.lastIndexOf(POINT);
+        if (idx == -1) {
+            return "";
+        }
+
+        return fileName.substring(idx).toLowerCase();
     }
 
     /**
-     * 鎵ц鍛戒护
-     *
-     * @param cmd 鍛戒护
+     * 鑾峰彇澶氱敤閫斾簰鑱旂綉閭欢鎵╁睍绫诲瀷
      */
-    public static String exec2(String cmd) {
-        try {
-            StringBuilder sb = new StringBuilder();
-            Process process = Runtime.getRuntime().exec(cmd);
-            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
-
-            String line;
-            while ((line = reader.readLine()) != null) {
-                sb.append(line).append("\n");
-            }
-            reader.close();
-
-            return sb.toString();
-        } catch (Exception ex) {
-            log.error(ex.getMessage(), ex);
-            return null;
+    public static String getMime(String ext) {
+        switch (ext) {
+            // 鍥剧墖
+            case ".tif":
+            case ".tiff":
+                return "image/tiff";
+            case ".img":
+                return "application/x-img";
+            case ".gif":
+                return "image/gif";
+            case ".jpg":
+            case ".jpeg":
+                return "image/jpeg";
+            case ".png":
+                return "image/png";
+            // 闊�/瑙嗛
+            case ".mp3":
+                return "audio/mp3";
+            case ".mp4":
+                return "video/mpeg4";
+            case ".avi":
+                return "video/avi";
+            case ".mpg":
+            case ".mpeg":
+                return "video/mpg";
+            case ".wav":
+                return "audio/wav";
+            case ".wma":
+                return "audio/x-ms-wma";
+            case ".swf":
+                return "application/x-shockwave-flash";
+            case ".wmv":
+                return "video/x-ms-wmv";
+            case ".rm":
+                return "application/vnd.rn-realmedia";
+            case ".rmvb":
+                return "application/vnd.rn-realmedia-vbr";
+            // 缃戦〉
+            case ".js":
+                return "application/x-javascript";
+            case ".css":
+                return "text/css";
+            case ".asp":
+                return "text/asp";
+            case ".mht":
+                return "message/rfc822";
+            case ".jsp":
+            case ".htm":
+            case ".html":
+            case ".xhtml":
+                return "text/html";
+            case ".xml":
+            case ".svg":
+                return "text/xml";
+            // 鏂囦欢
+            case ".txt":
+                return "text/plain";
+            case ".dbf":
+                return "application/x-dbf";
+            case ".mdb":
+                return "application/msaccess";
+            case ".pdf":
+                return "application/pdf";
+            case ".ppt":
+            case ".pptx":
+                return "application/x-ppt";
+            case ".doc":
+            case ".docx":
+                return "application/msword";
+            case ".xls":
+            case ".xlsx":
+                return "application/vnd.ms-excel";
+            case ".dgn":
+                return "application/x-dgn";
+            case ".dwg":
+                return "application/x-dwg";
+            case ".ext":
+                return "application/x-msdownload";
+            // 榛樿
+            default:
+                return "application/octet-stream";
         }
-    }
-
-    /**
-     * 鑾峰彇璇锋眰鐨勫弬鏁板��
-     *
-     * @param req 璇锋眰
-     * @param key 鍙傛暟鍚�
-     * @return 鍙傛暟鍊�
-     */
-    public static String getReqParamVal(HttpServletRequest req, String key) {
-        Map<String, String[]> maps = req.getParameterMap();
-        for (Map.Entry<String, String[]> entry : maps.entrySet()) {
-            if (entry.getKey().equalsIgnoreCase(key)) {
-                return null == entry.getValue() || 0 == entry.getValue().length ? null : entry.getValue()[0];
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * 鑾峰彇璇锋眰鐨勫弬鏁板��
-     *
-     * @param req 璇锋眰
-     * @param key 鍙傛暟鍚�
-     * @return 鍙傛暟鍊�
-     */
-    public static String[] getReqParamVals(HttpServletRequest req, String key) {
-        Map<String, String[]> maps = req.getParameterMap();
-        for (Map.Entry<String, String[]> entry : maps.entrySet()) {
-            if (entry.getKey().equalsIgnoreCase(key)) {
-                return entry.getValue();
-            }
-        }
-
-        return null;
     }
 }

--
Gitblit v1.9.3