You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			174 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Java
		
	
			
		
		
	
	
			174 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Java
		
	
| package com.glxp.api.util;
 | |
| 
 | |
| import cn.hutool.core.convert.Convert;
 | |
| import cn.hutool.extra.servlet.ServletUtil;
 | |
| import cn.hutool.http.HttpStatus;
 | |
| import com.glxp.api.constant.Constant;
 | |
| import lombok.AccessLevel;
 | |
| import lombok.NoArgsConstructor;
 | |
| import org.apache.commons.lang3.StringUtils;
 | |
| 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 javax.servlet.http.HttpServletRequest;
 | |
| import javax.servlet.http.HttpServletResponse;
 | |
| import javax.servlet.http.HttpSession;
 | |
| import java.io.IOException;
 | |
| import java.io.UnsupportedEncodingException;
 | |
| import java.net.URLDecoder;
 | |
| import java.net.URLEncoder;
 | |
| import java.nio.charset.StandardCharsets;
 | |
| 
 | |
| /**
 | |
|  * 客户端工具类
 | |
|  */
 | |
| @NoArgsConstructor(access = AccessLevel.PRIVATE)
 | |
| public class ServletUtils extends ServletUtil {
 | |
| 
 | |
|     /**
 | |
|      * 获取String参数
 | |
|      */
 | |
|     public static String getParameter(String name) {
 | |
|         return getRequest().getParameter(name);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 获取String参数
 | |
|      */
 | |
|     public static String getParameter(String name, String defaultValue) {
 | |
|         return Convert.toStr(getRequest().getParameter(name), defaultValue);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 获取Integer参数
 | |
|      */
 | |
|     public static Integer getParameterToInt(String name) {
 | |
|         return Convert.toInt(getRequest().getParameter(name));
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 获取Integer参数
 | |
|      */
 | |
|     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);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 获取request
 | |
|      */
 | |
|     public static HttpServletRequest getRequest() {
 | |
|         return getRequestAttributes().getRequest();
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 获取response
 | |
|      */
 | |
|     public static HttpServletResponse getResponse() {
 | |
|         return getRequestAttributes().getResponse();
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 获取session
 | |
|      */
 | |
|     public static HttpSession getSession() {
 | |
|         return getRequest().getSession();
 | |
|     }
 | |
| 
 | |
|     public static ServletRequestAttributes getRequestAttributes() {
 | |
|         RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
 | |
|         return (ServletRequestAttributes) attributes;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 将字符串渲染到客户端
 | |
|      *
 | |
|      * @param response 渲染对象
 | |
|      * @param string   待渲染的字符串
 | |
|      */
 | |
|     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) {
 | |
|             e.printStackTrace();
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 是否是Ajax异步请求
 | |
|      *
 | |
|      * @param request
 | |
|      */
 | |
|     public static boolean isAjaxRequest(HttpServletRequest request) {
 | |
| 
 | |
|         String accept = request.getHeader("accept");
 | |
|         if (accept != null && accept.contains(MediaType.APPLICATION_JSON_VALUE)) {
 | |
|             return true;
 | |
|         }
 | |
| 
 | |
|         String xRequestedWith = request.getHeader("X-Requested-With");
 | |
|         if (xRequestedWith != null && xRequestedWith.contains("XMLHttpRequest")) {
 | |
|             return true;
 | |
|         }
 | |
| 
 | |
|         String uri = request.getRequestURI();
 | |
|         if (StringUtils.equalsAnyIgnoreCase(uri, ".json", ".xml")) {
 | |
|             return true;
 | |
|         }
 | |
| 
 | |
|         String ajax = request.getParameter("__ajax");
 | |
|         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, Constant.UTF8);
 | |
|         } catch (UnsupportedEncodingException e) {
 | |
|             return StringUtils.EMPTY;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 内容解码
 | |
|      *
 | |
|      * @param str 内容
 | |
|      * @return 解码后的内容
 | |
|      */
 | |
|     public static String urlDecode(String str) {
 | |
|         try {
 | |
|             return URLDecoder.decode(str, Constant.UTF8);
 | |
|         } catch (UnsupportedEncodingException e) {
 | |
|             return StringUtils.EMPTY;
 | |
|         }
 | |
|     }
 | |
| 
 | |
| }
 |