类 ServletUtils


  • public class ServletUtils
    extends java.lang.Object
    Servlet相关工具类封装
    源自 hutool-extra 增强
    从以下版本开始:
    2019年8月14日
    作者:
    ylyue
    • 方法概要

      所有方法 静态方法 具体方法 
      修饰符和类型 方法 说明
      static void addCookie​(java.lang.String name, java.lang.String value)
      设定返回给客户端的Cookie
      static void addCookie​(java.lang.String name, java.lang.String value, int maxAgeInSeconds)
      设定返回给客户端的Cookie
      Path: "/"
      No Domain
      static void addCookie​(java.lang.String name, java.lang.String value, int maxAgeInSeconds, java.lang.String path, java.lang.String domain)
      设定返回给客户端的Cookie
      static void addCookie​(javax.servlet.http.Cookie cookie)
      设定返回给客户端的Cookie
      static <T> T fillBean​(javax.servlet.ServletRequest request, T bean, boolean isIgnoreError)
      ServletRequest 参数转Bean
      static <T> T fillBean​(javax.servlet.ServletRequest request, T bean, cn.hutool.core.bean.copier.CopyOptions copyOptions)
      ServletRequest 参数转Bean
      static java.lang.String getBody​(javax.servlet.ServletRequest request)
      获取请求体
      调用该方法后,getParam方法将失效
      static byte[] getBodyBytes​(javax.servlet.ServletRequest request)
      获取请求体byte[]
      调用该方法后,getParam方法将失效
      static java.lang.String getClientIP​(java.lang.String... otherHeaderNames)
      获取客户端IP
      static java.lang.String getClientIPByHeader​(java.lang.String... headerNames)
      获取客户端IP
      static javax.servlet.http.Cookie getCookie​(java.lang.String name)
      获得指定的Cookie
      static java.lang.String getHeader​(java.lang.String name, java.lang.String charsetName)
      获得请求header中的信息
      static java.lang.String getHeader​(java.lang.String name, java.nio.charset.Charset charset)
      获得请求header中的信息
      static java.lang.String getHeaderIgnoreCase​(java.lang.String nameIgnoreCase)
      忽略大小写获得请求header中的信息
      static java.util.Map<java.lang.String,​java.lang.String> getHeaderMap()
      获取请求所有的头(header)信息
      static MultipartFormData getMultipart()
      获得multipart/form-data 表单内容
      包括文件和普通表单数据
      在同一次请求中,此方法只能被执行一次!
      static java.util.Map<java.lang.String,​java.lang.String> getParamMap​(javax.servlet.ServletRequest request)
      获得所有请求参数
      static java.util.Map<java.lang.String,​java.lang.String[]> getParams​(javax.servlet.ServletRequest request)
      获得所有请求参数
      static javax.servlet.http.HttpServletRequest getRequest()
      获得当前请求上下文中的HttpServletRequest
      static org.springframework.web.context.request.ServletRequestAttributes getRequestAttributes()
      获得当前请求上下文中的ServletRequestAttributes
      static javax.servlet.http.HttpServletResponse getResponse()
      获得当前请求上下文中的HttpServletResponse
      static java.lang.String getServerURL()
      获得当前请求的服务器的URL地址
      static javax.servlet.http.HttpSession getSession()
      获得当前请求HttpSession
      static java.io.PrintWriter getWriter()
      获得PrintWriter
      static boolean isGetMethod()
      是否为GET请求
      static boolean isIE()
      客户浏览器是否为IE
      static boolean isMultipart()
      是否为Multipart类型表单,此类型表单用于文件上传
      static boolean isPostMethod()
      是否为POST请求
      static void printRequest()
      打印请求报文
      static java.util.Map<java.lang.String,​javax.servlet.http.Cookie> readCookieMap()
      将cookie封装到Map里面
      static void setHeader​(java.lang.String name, java.lang.Object value)
      设置响应的Header
      static <T> T toBean​(javax.servlet.ServletRequest request, java.lang.Class<T> beanClass, boolean isIgnoreError)
      ServletRequest 参数转Bean
      static void write​(java.io.File file)
      返回文件给客户端
      static void write​(java.io.InputStream in)
      返回数据给客户端
      static void write​(java.io.InputStream in, int bufferSize)
      返回数据给客户端
      static void write​(java.io.InputStream in, java.lang.String contentType)
      返回数据给客户端
      static void write​(java.io.InputStream in, java.lang.String contentType, java.lang.String fileName)
      返回数据给客户端
      static void write​(java.lang.String text, java.lang.String contentType)
      返回数据给客户端
      • 从类继承的方法 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 字段详细资料

      • METHOD_DELETE

        public static final java.lang.String METHOD_DELETE
        另请参阅:
        常量字段值
      • METHOD_HEAD

        public static final java.lang.String METHOD_HEAD
        另请参阅:
        常量字段值
      • METHOD_GET

        public static final java.lang.String METHOD_GET
        另请参阅:
        常量字段值
      • METHOD_OPTIONS

        public static final java.lang.String METHOD_OPTIONS
        另请参阅:
        常量字段值
      • METHOD_POST

        public static final java.lang.String METHOD_POST
        另请参阅:
        常量字段值
      • METHOD_PUT

        public static final java.lang.String METHOD_PUT
        另请参阅:
        常量字段值
      • METHOD_TRACE

        public static final java.lang.String METHOD_TRACE
        另请参阅:
        常量字段值
      • HTTP_TCP_NAME

        public static final java.lang.String HTTP_TCP_NAME
        另请参阅:
        常量字段值
      • HTTPS_TCP_NAME

        public static final java.lang.String HTTPS_TCP_NAME
        另请参阅:
        常量字段值
      • POINTCUT

        public static final java.lang.String POINTCUT
        HttpAspect请求切入点
        另请参阅:
        常量字段值
    • 构造器详细资料

      • ServletUtils

        public ServletUtils()
    • 方法详细资料

      • getRequestAttributes

        public static org.springframework.web.context.request.ServletRequestAttributes getRequestAttributes()
        获得当前请求上下文中的ServletRequestAttributes
        返回:
        ServletRequestAttributes
      • getRequest

        public static javax.servlet.http.HttpServletRequest getRequest()
        获得当前请求上下文中的HttpServletRequest
        返回:
        HttpServletRequest
      • getResponse

        public static javax.servlet.http.HttpServletResponse getResponse()
        获得当前请求上下文中的HttpServletResponse
        返回:
        HttpServletResponse
      • getSession

        public static javax.servlet.http.HttpSession getSession()
        获得当前请求HttpSession
        返回:
        HttpSession
      • getServerURL

        public static java.lang.String getServerURL()
        获得当前请求的服务器的URL地址

        示例一:http://localhost:8080
        示例二:http://localhost:8080/projectName

        返回:
        当前请求的服务器的URL地址
      • printRequest

        public static void printRequest()
        打印请求报文

        注意:打印不包括:异步请求内容、数据流

      • getParams

        public static java.util.Map<java.lang.String,​java.lang.String[]> getParams​(javax.servlet.ServletRequest request)
        获得所有请求参数
        参数:
        request - 请求对象ServletRequest
        返回:
        Map
      • getParamMap

        public static java.util.Map<java.lang.String,​java.lang.String> getParamMap​(javax.servlet.ServletRequest request)
        获得所有请求参数
        参数:
        request - 请求对象ServletRequest
        返回:
        Map
      • getBody

        public static java.lang.String getBody​(javax.servlet.ServletRequest request)
        获取请求体
        调用该方法后,getParam方法将失效
        参数:
        request - ServletRequest
        返回:
        获得请求体
        从以下版本开始:
        4.0.2
      • getBodyBytes

        public static byte[] getBodyBytes​(javax.servlet.ServletRequest request)
        获取请求体byte[]
        调用该方法后,getParam方法将失效
        参数:
        request - ServletRequest
        返回:
        获得请求体byte[]
        从以下版本开始:
        4.0.2
      • fillBean

        public static <T> T fillBean​(javax.servlet.ServletRequest request,
                                     T bean,
                                     cn.hutool.core.bean.copier.CopyOptions copyOptions)
        ServletRequest 参数转Bean
        类型参数:
        T - Bean类型
        参数:
        request - ServletRequest
        bean - Bean
        copyOptions - 注入时的设置
        返回:
        Bean
        从以下版本开始:
        3.0.4
      • fillBean

        public static <T> T fillBean​(javax.servlet.ServletRequest request,
                                     T bean,
                                     boolean isIgnoreError)
        ServletRequest 参数转Bean
        类型参数:
        T - Bean类型
        参数:
        request - ServletRequest
        bean - Bean
        isIgnoreError - 是否忽略注入错误
        返回:
        Bean
      • toBean

        public static <T> T toBean​(javax.servlet.ServletRequest request,
                                   java.lang.Class<T> beanClass,
                                   boolean isIgnoreError)
        ServletRequest 参数转Bean
        类型参数:
        T - Bean类型
        参数:
        request - ServletRequest
        beanClass - Bean Class
        isIgnoreError - 是否忽略注入错误
        返回:
        Bean
      • getClientIP

        public static java.lang.String getClientIP​(java.lang.String... otherHeaderNames)
        获取客户端IP

        默认检测的Header:

         1、X-Forwarded-For
         2、X-Real-IP
         3、Proxy-Client-IP
         4、WL-Proxy-Client-IP
         

        otherHeaderNames参数用于自定义检测的Header
        需要注意的是,使用此方法获取的客户IP地址必须在Http服务器(例如Nginx)中配置头信息,否则容易造成IP伪造。

        参数:
        otherHeaderNames - 其他自定义头文件,通常在Http服务器(例如Nginx)中配置
        返回:
        IP地址
      • getClientIPByHeader

        public static java.lang.String getClientIPByHeader​(java.lang.String... headerNames)
        获取客户端IP

        headerNames参数用于自定义检测的Header
        需要注意的是,使用此方法获取的客户IP地址必须在Http服务器(例如Nginx)中配置头信息,否则容易造成IP伪造。

        参数:
        headerNames - 自定义头,通常在Http服务器(例如Nginx)中配置
        返回:
        IP地址
        从以下版本开始:
        4.4.1
      • getMultipart

        public static MultipartFormData getMultipart()
                                              throws cn.hutool.core.io.IORuntimeException
        获得multipart/form-data 表单内容
        包括文件和普通表单数据
        在同一次请求中,此方法只能被执行一次!
        返回:
        MultiPart表单
        抛出:
        cn.hutool.core.io.IORuntimeException - IO异常
        从以下版本开始:
        4.0.2
      • getHeaderMap

        public static java.util.Map<java.lang.String,​java.lang.String> getHeaderMap()
        获取请求所有的头(header)信息
        返回:
        header值
        从以下版本开始:
        4.6.2
      • getHeaderIgnoreCase

        public static java.lang.String getHeaderIgnoreCase​(java.lang.String nameIgnoreCase)
        忽略大小写获得请求header中的信息
        参数:
        nameIgnoreCase - 忽略大小写头信息的KEY
        返回:
        header值
      • getHeader

        public static java.lang.String getHeader​(java.lang.String name,
                                                 java.lang.String charsetName)
        获得请求header中的信息
        参数:
        name - 头信息的KEY
        charsetName - 字符集
        返回:
        header值
      • getHeader

        public static java.lang.String getHeader​(java.lang.String name,
                                                 java.nio.charset.Charset charset)
        获得请求header中的信息
        参数:
        name - 头信息的KEY
        charset - 字符集
        返回:
        header值
        从以下版本开始:
        4.6.2
      • isIE

        public static boolean isIE()
        客户浏览器是否为IE
        返回:
        客户浏览器是否为IE
      • isGetMethod

        public static boolean isGetMethod()
        是否为GET请求
        返回:
        是否为GET请求
      • isPostMethod

        public static boolean isPostMethod()
        是否为POST请求
        返回:
        是否为POST请求
      • isMultipart

        public static boolean isMultipart()
        是否为Multipart类型表单,此类型表单用于文件上传
        返回:
        是否为Multipart类型表单,此类型表单用于文件上传
      • getCookie

        public static javax.servlet.http.Cookie getCookie​(java.lang.String name)
        获得指定的Cookie
        参数:
        name - cookie名
        返回:
        Cookie对象
      • readCookieMap

        public static java.util.Map<java.lang.String,​javax.servlet.http.Cookie> readCookieMap()
        将cookie封装到Map里面
        返回:
        Cookie map
      • addCookie

        public static void addCookie​(javax.servlet.http.Cookie cookie)
        设定返回给客户端的Cookie
        参数:
        cookie - Servlet Cookie对象
      • addCookie

        public static void addCookie​(java.lang.String name,
                                     java.lang.String value)
        设定返回给客户端的Cookie
        参数:
        name - Cookie名
        value - Cookie值
      • addCookie

        public static void addCookie​(java.lang.String name,
                                     java.lang.String value,
                                     int maxAgeInSeconds,
                                     java.lang.String path,
                                     java.lang.String domain)
        设定返回给客户端的Cookie
        参数:
        name - cookie名
        value - cookie值
        maxAgeInSeconds - -1: 关闭浏览器清除Cookie. 0: 立即清除Cookie. >0 : Cookie存在的秒数.
        path - Cookie的有效路径
        domain - the domain name within which this cookie is visible; form is according to RFC 2109
      • addCookie

        public static void addCookie​(java.lang.String name,
                                     java.lang.String value,
                                     int maxAgeInSeconds)
        设定返回给客户端的Cookie
        Path: "/"
        No Domain
        参数:
        name - cookie名
        value - cookie值
        maxAgeInSeconds - -1: 关闭浏览器清除Cookie. 0: 立即清除Cookie. >0 : Cookie存在的秒数.
      • getWriter

        public static java.io.PrintWriter getWriter()
                                             throws cn.hutool.core.io.IORuntimeException
        获得PrintWriter
        返回:
        获得PrintWriter
        抛出:
        cn.hutool.core.io.IORuntimeException - IO异常
      • write

        public static void write​(java.lang.String text,
                                 java.lang.String contentType)
        返回数据给客户端
        参数:
        text - 返回的内容
        contentType - 返回的类型
      • write

        public static void write​(java.io.File file)
        返回文件给客户端
        参数:
        file - 写出的文件对象
        从以下版本开始:
        4.1.15
      • write

        public static void write​(java.io.InputStream in,
                                 java.lang.String contentType,
                                 java.lang.String fileName)
        返回数据给客户端
        参数:
        in - 需要返回客户端的内容
        contentType - 返回的类型
        fileName - 文件名
        从以下版本开始:
        4.1.15
      • write

        public static void write​(java.io.InputStream in,
                                 java.lang.String contentType)
        返回数据给客户端
        参数:
        in - 需要返回客户端的内容
        contentType - 返回的类型
      • write

        public static void write​(java.io.InputStream in)
        返回数据给客户端
        参数:
        in - 需要返回客户端的内容
      • write

        public static void write​(java.io.InputStream in,
                                 int bufferSize)
        返回数据给客户端
        参数:
        in - 需要返回客户端的内容
        bufferSize - 缓存大小
      • setHeader

        public static void setHeader​(java.lang.String name,
                                     java.lang.Object value)
        设置响应的Header
        参数:
        name - 名
        value - 值,可以是String,Date, int