Package org.aoju.bus.extra.servlet
Class ServletKit
java.lang.Object
org.aoju.bus.extra.servlet.ServletKit
Servlet 工具类
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic void设定返回给客户端的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, org.aoju.bus.core.beans.copier.CopyOptions copyOptions) ServletRequest 参数转Beanstatic StringgetBody(javax.servlet.ServletRequest request) 获取请求体 调用该方法后,getParam方法将失效static byte[]getBodyBytes(javax.servlet.ServletRequest request) 获取请求体byte[] 调用该方法后,getParam方法将失效static StringgetClientIP(javax.servlet.http.HttpServletRequest request, String... headerNames) 获取客户端IPstatic StringgetClientIPByHeader(javax.servlet.http.HttpServletRequest request, String... headerNames) 获取客户端IPgetCookie(javax.servlet.http.HttpServletRequest httpServletRequest) 将cookie封装到Map里面static javax.servlet.http.Cookie获得指定的CookiegetHeader(javax.servlet.http.HttpServletRequest request) 获取请求所有的头(header)信息static String忽略大小写获得请求header中的信息static String获得请求header中的信息static String获得请求header中的信息getParamMap(javax.servlet.ServletRequest request) 获得所有请求参数getParams(javax.servlet.ServletRequest request) 获得所有请求参数static 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 void设置响应的Headerstatic <T> TServletRequest 参数转Beanstatic void返回文件给客户端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 void返回数据给客户端
-
Constructor Details
-
ServletKit
public ServletKit()
-
-
Method Details
-
getParams
获得所有请求参数- Parameters:
request- 请求对象ServletRequest- Returns:
- Map
-
getParamMap
获得所有请求参数- Parameters:
request- 请求对象ServletRequest- Returns:
- Map
-
getBody
获取请求体 调用该方法后,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- ServletRequestbean- BeancopyOptions- 注入时的设置- 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-ServletRequestbean- BeanisIgnoreError- 是否忽略注入错误- 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- ServletRequestbeanClass- Bean ClassisIgnoreError- 是否忽略注入错误- 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- 请求对象HttpServletRequestheaderNames- 其他自定义头文件,通常在Http服务器(例如Nginx)中配置- Returns:
- IP地址
-
getClientIPByHeader
public static String getClientIPByHeader(javax.servlet.http.HttpServletRequest request, String... headerNames) 获取客户端IPheaderNames参数用于自定义检测的Header 需要注意的是,使用此方法获取的客户IP地址必须在Http服务器(例如Nginx)中配置头信息,否则容易造成IP伪造。
- Parameters:
request- 请求对象HttpServletRequestheaderNames- 自定义头,通常在Http服务器(例如Nginx)中配置- Returns:
- IP地址
-
getHeader
获取请求所有的头(header)信息- Parameters:
request- 请求对象HttpServletRequest- Returns:
- header值
-
getHeader
public static String getHeader(javax.servlet.http.HttpServletRequest request, String nameIgnoreCase) 忽略大小写获得请求header中的信息- Parameters:
request- 请求对象HttpServletRequestnameIgnoreCase- 忽略大小写头信息的KEY- Returns:
- header值
-
getHeader
public static String getHeader(javax.servlet.http.HttpServletRequest request, String name, String charsetName) 获得请求header中的信息- Parameters:
request- 请求对象HttpServletRequestname- 头信息的KEYcharsetName- 字符集- Returns:
- header值
-
getHeader
public static String getHeader(javax.servlet.http.HttpServletRequest request, String name, Charset charset) 获得请求header中的信息- Parameters:
request- 请求对象HttpServletRequestname- 头信息的KEYcharset- 字符集- Returns:
- header值
-
setHeader
public static void setHeader(javax.servlet.http.HttpServletResponse response, String name, Object value) 设置响应的Header- Parameters:
response- 响应对象HttpServletResponsename- 名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-HttpServletRequestname- cookie名称- Returns:
- Cookie对象
-
addCookie
public static void addCookie(javax.servlet.http.HttpServletResponse response, javax.servlet.http.Cookie cookie) 设定返回给客户端的Cookie- Parameters:
response- 响应对象HttpServletResponsecookie- Servlet Cookie对象
-
addCookie
public static void addCookie(javax.servlet.http.HttpServletResponse response, String name, String value) 设定返回给客户端的Cookie- Parameters:
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- Parameters:
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- Parameters:
response- 响应对象HttpServletResponsename- 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- 响应对象HttpServletResponsetext- 返回的内容contentType- 返回的类型
-
write
返回文件给客户端- Parameters:
response- 响应对象HttpServletResponsefile- 写出的文件对象
-
write
public static void write(javax.servlet.http.HttpServletResponse response, InputStream in, String contentType, String fileName) 返回数据给客户端- Parameters:
response- 响应对象HttpServletResponsein- 需要返回客户端的内容contentType- 返回的类型fileName- 文件名
-
write
public static void write(javax.servlet.http.HttpServletResponse response, InputStream in, String contentType) 返回数据给客户端- Parameters:
response- 响应对象HttpServletResponsein- 需要返回客户端的内容contentType- 返回的类型
-
write
返回数据给客户端- Parameters:
response- 响应对象HttpServletResponsein- 需要返回客户端的内容
-
write
public static void write(javax.servlet.http.HttpServletResponse response, InputStream in, int bufferSize) 返回数据给客户端- Parameters:
response- 响应对象HttpServletResponsein- 需要返回客户端的内容bufferSize- 缓存大小
-