类 ServletUtils
- java.lang.Object
-
- ai.yue.library.web.util.servlet.ServletUtils
-
public class ServletUtils extends Object
Servlet相关工具类封装
源自 hutool-extra 增强- 从以下版本开始:
- 2019年8月14日
- 作者:
- ylyue
-
-
字段概要
字段 修饰符和类型 字段 说明 static StringHTTP_TCP_NAMEstatic StringHTTPS_TCP_NAMEstatic StringMETHOD_DELETEstatic StringMETHOD_GETstatic StringMETHOD_HEADstatic StringMETHOD_OPTIONSstatic StringMETHOD_POSTstatic StringMETHOD_PUTstatic StringMETHOD_TRACEstatic StringPOINTCUTHttpAspect请求切入点
-
构造器概要
构造器 构造器 说明 ServletUtils()
-
方法概要
所有方法 静态方法 具体方法 修饰符和类型 方法 说明 static voidaddCookie(String name, String value)设定返回给客户端的Cookiestatic voidaddCookie(String name, String value, int maxAgeInSeconds)设定返回给客户端的Cookie
Path: "/"
No Domainstatic voidaddCookie(String name, String value, int maxAgeInSeconds, String path, String domain)设定返回给客户端的Cookiestatic voidaddCookie(javax.servlet.http.Cookie cookie)设定返回给客户端的Cookiestatic <T> TfillBean(javax.servlet.ServletRequest request, T bean, boolean isIgnoreError)ServletRequest 参数转Beanstatic <T> TfillBean(javax.servlet.ServletRequest request, T bean, cn.hutool.core.bean.copier.CopyOptions copyOptions)ServletRequest 参数转Beanstatic StringgetBody(javax.servlet.ServletRequest request)获取请求体
调用该方法后,getParam方法将失效static byte[]getBodyBytes(javax.servlet.ServletRequest request)获取请求体byte[]
调用该方法后,getParam方法将失效static StringgetClientIP(String... otherHeaderNames)获取客户端IPstatic StringgetClientIPByHeader(String... headerNames)获取客户端IPstatic javax.servlet.http.CookiegetCookie(String name)获得指定的Cookiestatic StringgetHeader(String name, String charsetName)获得请求header中的信息static StringgetHeader(String name, Charset charset)获得请求header中的信息static StringgetHeaderIgnoreCase(String nameIgnoreCase)忽略大小写获得请求header中的信息static Map<String,String>getHeaderMap()获取请求所有的头(header)信息static MultipartFormDatagetMultipart()获得multipart/form-data 表单内容
包括文件和普通表单数据
在同一次请求中,此方法只能被执行一次!static Map<String,String>getParamMap(javax.servlet.ServletRequest request)获得所有请求参数static Map<String,String[]>getParams(javax.servlet.ServletRequest request)获得所有请求参数static javax.servlet.http.HttpServletRequestgetRequest()获得当前请求上下文中的HttpServletRequeststatic org.springframework.web.context.request.ServletRequestAttributesgetRequestAttributes()获得当前请求上下文中的ServletRequestAttributesstatic javax.servlet.http.HttpServletResponsegetResponse()获得当前请求上下文中的HttpServletResponsestatic StringgetServerURL()获得当前请求的服务器的URL地址static javax.servlet.http.HttpSessiongetSession()获得当前请求HttpSessionstatic PrintWritergetWriter()获得PrintWriterstatic booleanisGetMethod()是否为GET请求static booleanisIE()客户浏览器是否为IEstatic booleanisMultipart()是否为Multipart类型表单,此类型表单用于文件上传static booleanisPostMethod()是否为POST请求static voidprintRequest()打印请求报文static Map<String,javax.servlet.http.Cookie>readCookieMap()将cookie封装到Map里面static voidsetHeader(String name, Object value)设置响应的Headerstatic <T> TtoBean(javax.servlet.ServletRequest request, Class<T> beanClass, boolean isIgnoreError)ServletRequest 参数转Beanstatic voidwrite(File file)返回文件给客户端static voidwrite(InputStream in)返回数据给客户端static voidwrite(InputStream in, int bufferSize)返回数据给客户端static voidwrite(InputStream in, String contentType)返回数据给客户端static voidwrite(InputStream in, String contentType, String fileName)返回数据给客户端static voidwrite(String text, String contentType)返回数据给客户端
-
-
-
方法详细资料
-
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 String getServerURL()
获得当前请求的服务器的URL地址示例一:http://localhost:8080
示例二:http://localhost:8080/projectName- 返回:
- 当前请求的服务器的URL地址
-
printRequest
public static void printRequest()
打印请求报文注意:打印不包括:异步请求内容、数据流
-
getParams
public static Map<String,String[]> getParams(javax.servlet.ServletRequest request)
获得所有请求参数- 参数:
request- 请求对象ServletRequest- 返回:
- Map
-
getParamMap
public static Map<String,String> getParamMap(javax.servlet.ServletRequest request)
获得所有请求参数- 参数:
request- 请求对象ServletRequest- 返回:
- Map
-
getBody
public static 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- ServletRequestbean- BeancopyOptions- 注入时的设置- 返回:
- Bean
- 从以下版本开始:
- 3.0.4
-
fillBean
public static <T> T fillBean(javax.servlet.ServletRequest request, T bean, boolean isIgnoreError)ServletRequest 参数转Bean- 类型参数:
T- Bean类型- 参数:
request-ServletRequestbean- BeanisIgnoreError- 是否忽略注入错误- 返回:
- Bean
-
toBean
public static <T> T toBean(javax.servlet.ServletRequest request, Class<T> beanClass, boolean isIgnoreError)ServletRequest 参数转Bean- 类型参数:
T- Bean类型- 参数:
request- ServletRequestbeanClass- Bean ClassisIgnoreError- 是否忽略注入错误- 返回:
- Bean
-
getClientIP
public static String getClientIP(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 String getClientIPByHeader(String... headerNames)
获取客户端IPheaderNames参数用于自定义检测的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 Map<String,String> getHeaderMap()
获取请求所有的头(header)信息- 返回:
- header值
- 从以下版本开始:
- 4.6.2
-
getHeaderIgnoreCase
public static String getHeaderIgnoreCase(String nameIgnoreCase)
忽略大小写获得请求header中的信息- 参数:
nameIgnoreCase- 忽略大小写头信息的KEY- 返回:
- header值
-
getHeader
public static String getHeader(String name, String charsetName)
获得请求header中的信息- 参数:
name- 头信息的KEYcharsetName- 字符集- 返回:
- header值
-
getHeader
public static String getHeader(String name, Charset charset)
获得请求header中的信息- 参数:
name- 头信息的KEYcharset- 字符集- 返回:
- 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(String name)
获得指定的Cookie- 参数:
name- cookie名- 返回:
- Cookie对象
-
readCookieMap
public static Map<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(String name, String value)
设定返回给客户端的Cookie- 参数:
name- Cookie名value- Cookie值
-
addCookie
public static void addCookie(String name, String value, int maxAgeInSeconds, String path, 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(String name, String value, int maxAgeInSeconds)
设定返回给客户端的Cookie
Path: "/"
No Domain- 参数:
name- cookie名value- cookie值maxAgeInSeconds- -1: 关闭浏览器清除Cookie. 0: 立即清除Cookie. >0 : Cookie存在的秒数.
-
getWriter
public static PrintWriter getWriter() throws cn.hutool.core.io.IORuntimeException
获得PrintWriter- 返回:
- 获得PrintWriter
- 抛出:
cn.hutool.core.io.IORuntimeException- IO异常
-
write
public static void write(String text, String contentType)
返回数据给客户端- 参数:
text- 返回的内容contentType- 返回的类型
-
write
public static void write(File file)
返回文件给客户端- 参数:
file- 写出的文件对象- 从以下版本开始:
- 4.1.15
-
write
public static void write(InputStream in, String contentType, String fileName)
返回数据给客户端- 参数:
in- 需要返回客户端的内容contentType- 返回的类型fileName- 文件名- 从以下版本开始:
- 4.1.15
-
write
public static void write(InputStream in, String contentType)
返回数据给客户端- 参数:
in- 需要返回客户端的内容contentType- 返回的类型
-
write
public static void write(InputStream in)
返回数据给客户端- 参数:
in- 需要返回客户端的内容
-
write
public static void write(InputStream in, int bufferSize)
返回数据给客户端- 参数:
in- 需要返回客户端的内容bufferSize- 缓存大小
-
-