类 ServletUtils
- java.lang.Object
-
- ai.yue.library.web.util.ServletUtils
-
public class ServletUtils extends Object
Servlet相关工具类封装
源自 hutool-extra 增强- 从以下版本开始:
- 2019年8月14日
- 作者:
- ylyue
-
-
字段概要
字段 修饰符和类型 字段 说明 static StringACCESS_TOKENstatic StringBEARER_TYPEstatic StringHTTP_TCP_NAMEstatic StringHTTPS_TCP_NAMEstatic StringMETHOD_DELETEstatic StringMETHOD_GETstatic StringMETHOD_HEADstatic StringMETHOD_OPTIONSstatic StringMETHOD_POSTstatic StringMETHOD_PUTstatic StringMETHOD_TRACEstatic StringPOINTCUTHttpAspect请求切入点
-
构造器概要
构造器 构造器 说明 ServletUtils()
-
方法概要
所有方法 静态方法 具体方法 修饰符和类型 方法 说明 static voidaddCookie(javax.servlet.http.HttpServletResponse response, String name, String value)设定返回给客户端的Cookiestatic voidaddCookie(javax.servlet.http.HttpServletResponse response, String name, String value, int maxAgeInSeconds)设定返回给客户端的Cookie
Path: "/"
No Domainstatic voidaddCookie(javax.servlet.http.HttpServletResponse response, String name, String value, int maxAgeInSeconds, String path, String domain)设定返回给客户端的Cookiestatic voidaddCookie(javax.servlet.http.HttpServletResponse response, 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 StringgetAuthToken()获得请求中的OAuth2 Tokenstatic StringgetAuthToken(javax.servlet.http.HttpServletRequest request)获得请求中的OAuth2 Tokenstatic StringgetBody(javax.servlet.ServletRequest request)获取请求体
调用该方法后,getParam方法将失效static byte[]getBodyBytes(javax.servlet.ServletRequest request)获取请求体byte[]
调用该方法后,getParam方法将失效static StringgetClientIP(String... otherHeaderNames)获取客户端IPstatic StringgetClientIP(javax.servlet.http.HttpServletRequest request, String... otherHeaderNames)获取客户端IPstatic StringgetClientIPByHeader(javax.servlet.http.HttpServletRequest request, String... headerNames)获取客户端IPstatic javax.servlet.http.CookiegetCookie(javax.servlet.http.HttpServletRequest httpServletRequest, String name)获得指定的Cookiestatic StringgetHeader(javax.servlet.http.HttpServletRequest request, String name, String charsetName)获得请求header中的信息static StringgetHeader(javax.servlet.http.HttpServletRequest request, String name, Charset charset)获得请求header中的信息static StringgetHeaderIgnoreCase(javax.servlet.http.HttpServletRequest request, String nameIgnoreCase)忽略大小写获得请求header中的信息static Map<String,String>getHeaderMap(javax.servlet.http.HttpServletRequest request)获取请求所有的头(header)信息static cn.hutool.core.net.multipart.MultipartFormDatagetMultipart(javax.servlet.ServletRequest request)获得MultiPart表单内容,多用于获得上传的文件 在同一次请求中,此方法只能被执行一次!static cn.hutool.core.net.multipart.MultipartFormDatagetMultipart(javax.servlet.ServletRequest request, cn.hutool.core.net.multipart.UploadSetting uploadSetting)获得multipart/form-data 表单内容
包括文件和普通表单数据
在同一次请求中,此方法只能被执行一次!static Map<String,String>getParamMap(javax.servlet.ServletRequest request)获得所有请求参数static Map<String,String[]>getParams(javax.servlet.ServletRequest request)获得所有请求参数static <T> TgetParamToJavaBean(Class<T> clazz)获得请求参数并转换为JavaBeanstatic <T> TgetParamToJavaBean(javax.servlet.http.HttpServletRequest request, Class<T> clazz)获得请求参数并转换为JavaBeanstatic com.alibaba.fastjson.JSONObjectgetParamToJson()获得请求Jsonstatic com.alibaba.fastjson.JSONObjectgetParamToJson(javax.servlet.http.HttpServletRequest request)获得请求Jsonstatic 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(javax.servlet.http.HttpServletResponse response)获得PrintWriterstatic booleanisGetMethod(javax.servlet.http.HttpServletRequest request)是否为GET请求static booleanisIE(javax.servlet.http.HttpServletRequest request)客户浏览器是否为IEstatic booleanisMultipart(javax.servlet.http.HttpServletRequest request)是否为Multipart类型表单,此类型表单用于文件上传static booleanisPostMethod(javax.servlet.http.HttpServletRequest request)是否为POST请求static voidprintRequest()打印请求报文static Map<String,javax.servlet.http.Cookie>readCookieMap(javax.servlet.http.HttpServletRequest httpServletRequest)将cookie封装到Map里面static voidsetHeader(javax.servlet.http.HttpServletResponse response, String name, Object value)设置响应的Headerstatic <T> TtoBean(javax.servlet.ServletRequest request, Class<T> beanClass, boolean isIgnoreError)ServletRequest 参数转Beanstatic voidwrite(javax.servlet.http.HttpServletResponse response, File file)返回文件给客户端static voidwrite(javax.servlet.http.HttpServletResponse response, InputStream in)返回数据给客户端static voidwrite(javax.servlet.http.HttpServletResponse response, InputStream in, int bufferSize)返回数据给客户端static voidwrite(javax.servlet.http.HttpServletResponse response, InputStream in, String contentType)返回数据给客户端static voidwrite(javax.servlet.http.HttpServletResponse response, InputStream in, String contentType, String fileName)返回数据给客户端static voidwrite(javax.servlet.http.HttpServletResponse response, 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
-
getAuthToken
public static String getAuthToken()
获得请求中的OAuth2 Token- 返回:
- token
-
getAuthToken
public static String getAuthToken(javax.servlet.http.HttpServletRequest request)
获得请求中的OAuth2 Token- 参数:
request- 请求对象ServletRequest- 返回:
- token
-
getParamToJson
public static com.alibaba.fastjson.JSONObject getParamToJson()
获得请求Json- 返回:
- 解析的Json
-
getParamToJson
public static com.alibaba.fastjson.JSONObject getParamToJson(javax.servlet.http.HttpServletRequest request)
获得请求Json- 参数:
request- 请求对象ServletRequest- 返回:
- 解析的Json
-
getParamToJavaBean
public static <T> T getParamToJavaBean(Class<T> clazz)
获得请求参数并转换为JavaBean- 返回:
- 转换的JavaBean
-
getParamToJavaBean
public static <T> T getParamToJavaBean(javax.servlet.http.HttpServletRequest request, Class<T> clazz)获得请求参数并转换为JavaBean- 参数:
request- 请求对象ServletRequest- 返回:
- 转换的JavaBean
-
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地址
-
getClientIP
public static String getClientIP(javax.servlet.http.HttpServletRequest request, 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伪造。- 参数:
request- 请求对象HttpServletRequestotherHeaderNames- 其他自定义头文件,通常在Http服务器(例如Nginx)中配置- 返回:
- IP地址
-
getClientIPByHeader
public static String getClientIPByHeader(javax.servlet.http.HttpServletRequest request, String... headerNames)
获取客户端IPheaderNames参数用于自定义检测的Header
需要注意的是,使用此方法获取的客户IP地址必须在Http服务器(例如Nginx)中配置头信息,否则容易造成IP伪造。- 参数:
request- 请求对象HttpServletRequestheaderNames- 自定义头,通常在Http服务器(例如Nginx)中配置- 返回:
- IP地址
- 从以下版本开始:
- 4.4.1
-
getMultipart
public static cn.hutool.core.net.multipart.MultipartFormData getMultipart(javax.servlet.ServletRequest request) throws cn.hutool.core.io.IORuntimeException获得MultiPart表单内容,多用于获得上传的文件 在同一次请求中,此方法只能被执行一次!- 参数:
request-ServletRequest- 返回:
- MultipartFormData
- 抛出:
cn.hutool.core.io.IORuntimeException- IO异常- 从以下版本开始:
- 4.0.2
-
getMultipart
public static cn.hutool.core.net.multipart.MultipartFormData getMultipart(javax.servlet.ServletRequest request, cn.hutool.core.net.multipart.UploadSetting uploadSetting) throws cn.hutool.core.io.IORuntimeException获得multipart/form-data 表单内容
包括文件和普通表单数据
在同一次请求中,此方法只能被执行一次!- 参数:
request-ServletRequestuploadSetting- 上传文件的设定,包括最大文件大小、保存在内存的边界大小、临时目录、扩展名限定等- 返回:
- MultiPart表单
- 抛出:
cn.hutool.core.io.IORuntimeException- IO异常- 从以下版本开始:
- 4.0.2
-
getHeaderMap
public static Map<String,String> getHeaderMap(javax.servlet.http.HttpServletRequest request)
获取请求所有的头(header)信息- 参数:
request- 请求对象HttpServletRequest- 返回:
- header值
- 从以下版本开始:
- 4.6.2
-
getHeaderIgnoreCase
public static String getHeaderIgnoreCase(javax.servlet.http.HttpServletRequest request, String nameIgnoreCase)
忽略大小写获得请求header中的信息- 参数:
request- 请求对象HttpServletRequestnameIgnoreCase- 忽略大小写头信息的KEY- 返回:
- header值
-
getHeader
public static String getHeader(javax.servlet.http.HttpServletRequest request, String name, String charsetName)
获得请求header中的信息- 参数:
request- 请求对象HttpServletRequestname- 头信息的KEYcharsetName- 字符集- 返回:
- header值
-
getHeader
public static String getHeader(javax.servlet.http.HttpServletRequest request, String name, Charset charset)
获得请求header中的信息- 参数:
request- 请求对象HttpServletRequestname- 头信息的KEYcharset- 字符集- 返回:
- header值
- 从以下版本开始:
- 4.6.2
-
isIE
public static boolean isIE(javax.servlet.http.HttpServletRequest request)
客户浏览器是否为IE- 参数:
request- 请求对象HttpServletRequest- 返回:
- 客户浏览器是否为IE
-
isGetMethod
public static boolean isGetMethod(javax.servlet.http.HttpServletRequest request)
是否为GET请求- 参数:
request- 请求对象HttpServletRequest- 返回:
- 是否为GET请求
-
isPostMethod
public static boolean isPostMethod(javax.servlet.http.HttpServletRequest request)
是否为POST请求- 参数:
request- 请求对象HttpServletRequest- 返回:
- 是否为POST请求
-
isMultipart
public static boolean isMultipart(javax.servlet.http.HttpServletRequest request)
是否为Multipart类型表单,此类型表单用于文件上传- 参数:
request- 请求对象HttpServletRequest- 返回:
- 是否为Multipart类型表单,此类型表单用于文件上传
-
getCookie
public static javax.servlet.http.Cookie getCookie(javax.servlet.http.HttpServletRequest httpServletRequest, String name)获得指定的Cookie- 参数:
httpServletRequest-HttpServletRequestname- cookie名- 返回:
- Cookie对象
-
readCookieMap
public static Map<String,javax.servlet.http.Cookie> readCookieMap(javax.servlet.http.HttpServletRequest httpServletRequest)
将cookie封装到Map里面- 参数:
httpServletRequest-HttpServletRequest- 返回:
- Cookie map
-
addCookie
public static void addCookie(javax.servlet.http.HttpServletResponse response, javax.servlet.http.Cookie cookie)设定返回给客户端的Cookie- 参数:
response- 响应对象HttpServletResponsecookie- Servlet Cookie对象
-
addCookie
public static void addCookie(javax.servlet.http.HttpServletResponse response, String name, String value)设定返回给客户端的Cookie- 参数:
response- 响应对象HttpServletResponsename- Cookie名value- Cookie值
-
addCookie
public static void addCookie(javax.servlet.http.HttpServletResponse response, String name, String value, int maxAgeInSeconds, String path, String domain)设定返回给客户端的Cookie- 参数:
response- 响应对象HttpServletResponsename- 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- 参数:
response- 响应对象HttpServletResponsename- cookie名value- cookie值maxAgeInSeconds- -1: 关闭浏览器清除Cookie. 0: 立即清除Cookie. >0 : Cookie存在的秒数.
-
getWriter
public static PrintWriter getWriter(javax.servlet.http.HttpServletResponse response) throws cn.hutool.core.io.IORuntimeException
获得PrintWriter- 参数:
response- 响应对象HttpServletResponse- 返回:
- 获得PrintWriter
- 抛出:
cn.hutool.core.io.IORuntimeException- IO异常
-
write
public static void write(javax.servlet.http.HttpServletResponse response, String text, String contentType)返回数据给客户端- 参数:
response- 响应对象HttpServletResponsetext- 返回的内容contentType- 返回的类型
-
write
public static void write(javax.servlet.http.HttpServletResponse response, File file)返回文件给客户端- 参数:
response- 响应对象HttpServletResponsefile- 写出的文件对象- 从以下版本开始:
- 4.1.15
-
write
public static void write(javax.servlet.http.HttpServletResponse response, InputStream in, String contentType, String fileName)返回数据给客户端- 参数:
response- 响应对象HttpServletResponsein- 需要返回客户端的内容contentType- 返回的类型 如: 1、application/pdf、 2、application/vnd.ms-excel、 3、application/msword、 4、application/vnd.ms-powerpoint docx、xlsx 这种 office 2007 格式 设置 MIME;网页里面docx 文件是没问题,但是下载下来了之后就变成doc格式了 https://blog.csdn.net/cyh2260629/article/details/73824760 5、MIME_EXCELX_TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; 6、MIME_PPTX_TYPE = "application/vnd.openxmlformats-officedocument.presentationml.presentation"; 7、MIME_WORDX_TYPE = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; 8、MIME_STREAM_TYPE = "application/octet-stream;charset=utf-8"; #原始字节流fileName- 文件名- 从以下版本开始:
- 4.1.15
-
write
public static void write(javax.servlet.http.HttpServletResponse response, InputStream in, String contentType)返回数据给客户端- 参数:
response- 响应对象HttpServletResponsein- 需要返回客户端的内容contentType- 返回的类型
-
write
public static void write(javax.servlet.http.HttpServletResponse response, InputStream in)返回数据给客户端- 参数:
response- 响应对象HttpServletResponsein- 需要返回客户端的内容
-
write
public static void write(javax.servlet.http.HttpServletResponse response, InputStream in, int bufferSize)返回数据给客户端- 参数:
response- 响应对象HttpServletResponsein- 需要返回客户端的内容bufferSize- 缓存大小
-
-