package com.ruoyi.common.utils; 
 | 
  
 | 
import java.io.IOException; 
 | 
import java.io.UnsupportedEncodingException; 
 | 
import java.net.URLDecoder; 
 | 
import java.net.URLEncoder; 
 | 
import java.util.Collections; 
 | 
import java.util.HashMap; 
 | 
import java.util.Map; 
 | 
import javax.servlet.ServletRequest; 
 | 
import javax.servlet.http.HttpServletRequest; 
 | 
import javax.servlet.http.HttpServletResponse; 
 | 
import javax.servlet.http.HttpSession; 
 | 
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.constant.Constants; 
 | 
import com.ruoyi.common.core.text.Convert; 
 | 
  
 | 
/** 
 | 
 * 客户端工具类 
 | 
 *  
 | 
 * @author ruoyi 
 | 
 */ 
 | 
public class ServletUtils 
 | 
{ 
 | 
    /** 
 | 
     * 获取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); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 获得所有请求参数 
 | 
     * 
 | 
     * @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() 
 | 
    { 
 | 
        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(200); 
 | 
            response.setContentType("application/json"); 
 | 
            response.setCharacterEncoding("utf-8"); 
 | 
            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("application/json")) 
 | 
        { 
 | 
            return true; 
 | 
        } 
 | 
  
 | 
        String xRequestedWith = request.getHeader("X-Requested-With"); 
 | 
        if (xRequestedWith != null && xRequestedWith.contains("XMLHttpRequest")) 
 | 
        { 
 | 
            return true; 
 | 
        } 
 | 
  
 | 
        String uri = request.getRequestURI(); 
 | 
        if (StringUtils.inStringIgnoreCase(uri, ".json", ".xml")) 
 | 
        { 
 | 
            return true; 
 | 
        } 
 | 
  
 | 
        String ajax = request.getParameter("__ajax"); 
 | 
        return StringUtils.inStringIgnoreCase(ajax, "json", "xml"); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 内容编码 
 | 
     *  
 | 
     * @param str 内容 
 | 
     * @return 编码后的内容 
 | 
     */ 
 | 
    public static String urlEncode(String str) 
 | 
    { 
 | 
        try 
 | 
        { 
 | 
            return URLEncoder.encode(str, Constants.UTF8); 
 | 
        } 
 | 
        catch (UnsupportedEncodingException e) 
 | 
        { 
 | 
            return StringUtils.EMPTY; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 内容解码 
 | 
     *  
 | 
     * @param str 内容 
 | 
     * @return 解码后的内容 
 | 
     */ 
 | 
    public static String urlDecode(String str) 
 | 
    { 
 | 
        try 
 | 
        { 
 | 
            return URLDecoder.decode(str, Constants.UTF8); 
 | 
        } 
 | 
        catch (UnsupportedEncodingException e) 
 | 
        { 
 | 
            return StringUtils.EMPTY; 
 | 
        } 
 | 
    } 
 | 
} 
 |