Class ServletKit

java.lang.Object
org.aoju.bus.extra.servlet.ServletKit

public class ServletKit extends Object
Servlet 工具类
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    addCookie(javax.servlet.http.HttpServletResponse response, String name, String value)
    设定返回给客户端的Cookie
    static void
    addCookie(javax.servlet.http.HttpServletResponse response, String name, String value, int maxAgeInSeconds)
    设定返回给客户端的Cookie Path: "/" No Domain
    static void
    addCookie(javax.servlet.http.HttpServletResponse response, String name, String value, int maxAgeInSeconds, String path, String domain)
    设定返回给客户端的Cookie
    static void
    addCookie(javax.servlet.http.HttpServletResponse response, 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, org.aoju.bus.core.beans.copier.CopyOptions copyOptions)
    ServletRequest 参数转Bean
    static String
    getBody(javax.servlet.ServletRequest request)
    获取请求体 调用该方法后,getParam方法将失效
    static byte[]
    getBodyBytes(javax.servlet.ServletRequest request)
    获取请求体byte[] 调用该方法后,getParam方法将失效
    static String
    getClientIP(javax.servlet.http.HttpServletRequest request, String... headerNames)
    获取客户端IP
    static String
    getClientIPByHeader(javax.servlet.http.HttpServletRequest request, String... headerNames)
    获取客户端IP
    static Map<String,javax.servlet.http.Cookie>
    getCookie(javax.servlet.http.HttpServletRequest httpServletRequest)
    将cookie封装到Map里面
    static javax.servlet.http.Cookie
    getCookie(javax.servlet.http.HttpServletRequest httpServletRequest, String name)
    获得指定的Cookie
    static Map<String,String>
    getHeader(javax.servlet.http.HttpServletRequest request)
    获取请求所有的头(header)信息
    static String
    getHeader(javax.servlet.http.HttpServletRequest request, String nameIgnoreCase)
    忽略大小写获得请求header中的信息
    static String
    getHeader(javax.servlet.http.HttpServletRequest request, String name, String charsetName)
    获得请求header中的信息
    static String
    getHeader(javax.servlet.http.HttpServletRequest request, String name, Charset charset)
    获得请求header中的信息
    static Map<String,String>
    getParamMap(javax.servlet.ServletRequest request)
    获得所有请求参数
    static Map<String,String[]>
    getParams(javax.servlet.ServletRequest request)
    获得所有请求参数
    getWriter(javax.servlet.http.HttpServletResponse response)
    获得PrintWriter
    static boolean
    isGetMethod(javax.servlet.http.HttpServletRequest request)
    是否为GET请求
    static boolean
    isIE(javax.servlet.http.HttpServletRequest request)
    客户浏览器是否为IE
    static boolean
    isMultipart(javax.servlet.http.HttpServletRequest request)
    是否为Multipart类型表单,此类型表单用于文件上传
    static boolean
    isPostMethod(javax.servlet.http.HttpServletRequest request)
    是否为POST请求
    static void
    setHeader(javax.servlet.http.HttpServletResponse response, String name, Object value)
    设置响应的Header
    static <T> T
    toBean(javax.servlet.ServletRequest request, Class<T> beanClass, boolean isIgnoreError)
    ServletRequest 参数转Bean
    static void
    write(javax.servlet.http.HttpServletResponse response, File file)
    返回文件给客户端
    static void
    write(javax.servlet.http.HttpServletResponse response, InputStream in)
    返回数据给客户端
    static void
    write(javax.servlet.http.HttpServletResponse response, InputStream in, int bufferSize)
    返回数据给客户端
    static void
    write(javax.servlet.http.HttpServletResponse response, InputStream in, String contentType)
    返回数据给客户端
    static void
    write(javax.servlet.http.HttpServletResponse response, InputStream in, String contentType, String fileName)
    返回数据给客户端
    static void
    write(javax.servlet.http.HttpServletResponse response, String text, String contentType)
    返回数据给客户端

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ServletKit

      public ServletKit()
  • Method Details

    • getParams

      public static Map<String,String[]> getParams(javax.servlet.ServletRequest request)
      获得所有请求参数
      Parameters:
      request - 请求对象ServletRequest
      Returns:
      Map
    • getParamMap

      public static Map<String,String> getParamMap(javax.servlet.ServletRequest request)
      获得所有请求参数
      Parameters:
      request - 请求对象ServletRequest
      Returns:
      Map
    • getBody

      public static String getBody(javax.servlet.ServletRequest request)
      获取请求体 调用该方法后,getParam方法将失效
      Parameters:
      request - ServletRequest
      Returns:
      获得请求体
    • getBodyBytes

      public static byte[] getBodyBytes(javax.servlet.ServletRequest request)
      获取请求体byte[] 调用该方法后,getParam方法将失效
      Parameters:
      request - ServletRequest
      Returns:
      获得请求体byte[]
    • fillBean

      public static <T> T fillBean(javax.servlet.ServletRequest request, T bean, org.aoju.bus.core.beans.copier.CopyOptions copyOptions)
      ServletRequest 参数转Bean
      Type Parameters:
      T - Bean类型
      Parameters:
      request - ServletRequest
      bean - Bean
      copyOptions - 注入时的设置
      Returns:
      the bean
    • fillBean

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

      public static <T> T toBean(javax.servlet.ServletRequest request, Class<T> beanClass, boolean isIgnoreError)
      ServletRequest 参数转Bean
      Type Parameters:
      T - Bean类型
      Parameters:
      request - ServletRequest
      beanClass - Bean Class
      isIgnoreError - 是否忽略注入错误
      Returns:
      the bean
    • getClientIP

      public static String getClientIP(javax.servlet.http.HttpServletRequest request, String... headerNames)
      获取客户端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伪造。

      Parameters:
      request - 请求对象HttpServletRequest
      headerNames - 其他自定义头文件,通常在Http服务器(例如Nginx)中配置
      Returns:
      IP地址
    • getClientIPByHeader

      public static String getClientIPByHeader(javax.servlet.http.HttpServletRequest request, String... headerNames)
      获取客户端IP

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

      Parameters:
      request - 请求对象HttpServletRequest
      headerNames - 自定义头,通常在Http服务器(例如Nginx)中配置
      Returns:
      IP地址
    • getHeader

      public static Map<String,String> getHeader(javax.servlet.http.HttpServletRequest request)
      获取请求所有的头(header)信息
      Parameters:
      request - 请求对象HttpServletRequest
      Returns:
      header值
    • getHeader

      public static String getHeader(javax.servlet.http.HttpServletRequest request, String nameIgnoreCase)
      忽略大小写获得请求header中的信息
      Parameters:
      request - 请求对象HttpServletRequest
      nameIgnoreCase - 忽略大小写头信息的KEY
      Returns:
      header值
    • getHeader

      public static String getHeader(javax.servlet.http.HttpServletRequest request, String name, String charsetName)
      获得请求header中的信息
      Parameters:
      request - 请求对象HttpServletRequest
      name - 头信息的KEY
      charsetName - 字符集
      Returns:
      header值
    • getHeader

      public static String getHeader(javax.servlet.http.HttpServletRequest request, String name, Charset charset)
      获得请求header中的信息
      Parameters:
      request - 请求对象HttpServletRequest
      name - 头信息的KEY
      charset - 字符集
      Returns:
      header值
    • setHeader

      public static void setHeader(javax.servlet.http.HttpServletResponse response, String name, Object value)
      设置响应的Header
      Parameters:
      response - 响应对象HttpServletResponse
      name - 名
      value - 值,可以是String,Date, int
    • isIE

      public static boolean isIE(javax.servlet.http.HttpServletRequest request)
      客户浏览器是否为IE
      Parameters:
      request - 请求对象HttpServletRequest
      Returns:
      客户浏览器是否为IE
    • isGetMethod

      public static boolean isGetMethod(javax.servlet.http.HttpServletRequest request)
      是否为GET请求
      Parameters:
      request - 请求对象HttpServletRequest
      Returns:
      是否为GET请求
    • isPostMethod

      public static boolean isPostMethod(javax.servlet.http.HttpServletRequest request)
      是否为POST请求
      Parameters:
      request - 请求对象HttpServletRequest
      Returns:
      是否为POST请求
    • isMultipart

      public static boolean isMultipart(javax.servlet.http.HttpServletRequest request)
      是否为Multipart类型表单,此类型表单用于文件上传
      Parameters:
      request - 请求对象HttpServletRequest
      Returns:
      是否为Multipart类型表单,此类型表单用于文件上传
    • getCookie

      public static Map<String,javax.servlet.http.Cookie> getCookie(javax.servlet.http.HttpServletRequest httpServletRequest)
      将cookie封装到Map里面
      Parameters:
      httpServletRequest - HttpServletRequest
      Returns:
      Cookie map
    • getCookie

      public static javax.servlet.http.Cookie getCookie(javax.servlet.http.HttpServletRequest httpServletRequest, String name)
      获得指定的Cookie
      Parameters:
      httpServletRequest - HttpServletRequest
      name - cookie名称
      Returns:
      Cookie对象
    • addCookie

      public static void addCookie(javax.servlet.http.HttpServletResponse response, javax.servlet.http.Cookie cookie)
      设定返回给客户端的Cookie
      Parameters:
      response - 响应对象HttpServletResponse
      cookie - Servlet Cookie对象
    • addCookie

      public static void addCookie(javax.servlet.http.HttpServletResponse response, String name, String value)
      设定返回给客户端的Cookie
      Parameters:
      response - 响应对象HttpServletResponse
      name - Cookie名
      value - Cookie值
    • addCookie

      public static void addCookie(javax.servlet.http.HttpServletResponse response, String name, String value, int maxAgeInSeconds, String path, String domain)
      设定返回给客户端的Cookie
      Parameters:
      response - 响应对象HttpServletResponse
      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(javax.servlet.http.HttpServletResponse response, String name, String value, int maxAgeInSeconds)
      设定返回给客户端的Cookie Path: "/" No Domain
      Parameters:
      response - 响应对象HttpServletResponse
      name - cookie名
      value - cookie值
      maxAgeInSeconds - -1: 关闭浏览器清除Cookie. 0: 立即清除Cookie. >0 : Cookie存在的秒数.
    • getWriter

      public static PrintWriter getWriter(javax.servlet.http.HttpServletResponse response) throws org.aoju.bus.core.exception.InstrumentException
      获得PrintWriter
      Parameters:
      response - 响应对象HttpServletResponse
      Returns:
      获得PrintWriter
      Throws:
      org.aoju.bus.core.exception.InstrumentException - IO异常
    • write

      public static void write(javax.servlet.http.HttpServletResponse response, String text, String contentType)
      返回数据给客户端
      Parameters:
      response - 响应对象HttpServletResponse
      text - 返回的内容
      contentType - 返回的类型
    • write

      public static void write(javax.servlet.http.HttpServletResponse response, File file)
      返回文件给客户端
      Parameters:
      response - 响应对象HttpServletResponse
      file - 写出的文件对象
    • write

      public static void write(javax.servlet.http.HttpServletResponse response, InputStream in, String contentType, String fileName)
      返回数据给客户端
      Parameters:
      response - 响应对象HttpServletResponse
      in - 需要返回客户端的内容
      contentType - 返回的类型
      fileName - 文件名
    • write

      public static void write(javax.servlet.http.HttpServletResponse response, InputStream in, String contentType)
      返回数据给客户端
      Parameters:
      response - 响应对象HttpServletResponse
      in - 需要返回客户端的内容
      contentType - 返回的类型
    • write

      public static void write(javax.servlet.http.HttpServletResponse response, InputStream in)
      返回数据给客户端
      Parameters:
      response - 响应对象HttpServletResponse
      in - 需要返回客户端的内容
    • write

      public static void write(javax.servlet.http.HttpServletResponse response, InputStream in, int bufferSize)
      返回数据给客户端
      Parameters:
      response - 响应对象HttpServletResponse
      in - 需要返回客户端的内容
      bufferSize - 缓存大小