1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- package cn.iocoder.dashboard.util.servlet;
- import cn.hutool.core.io.IoUtil;
- import cn.hutool.extra.servlet.ServletUtil;
- import cn.iocoder.dashboard.util.json.JSONUtils;
- import org.springframework.http.MediaType;
- import org.springframework.web.context.request.RequestAttributes;
- import org.springframework.web.context.request.RequestContextHolder;
- import org.springframework.web.context.request.ServletRequestAttributes;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- import java.net.URLEncoder;
- /**
- * 客户端工具类
- *
- * @author 芋道源码
- */
- public class ServletUtils {
- /**
- * 返回 JSON 字符串
- *
- * @param response 响应
- * @param object 对象,会序列化成 JSON 字符串
- */
- @SuppressWarnings("deprecation") // 必须使用 APPLICATION_JSON_UTF8_VALUE,否则会乱码
- public static void writeJSON(HttpServletResponse response, Object object) {
- String content = JSONUtils.toJSONString(object);
- ServletUtil.write(response, content, MediaType.APPLICATION_JSON_UTF8_VALUE);
- }
- /**
- * 返回附件
- *
- * @param response 响应
- * @param filename 文件名
- * @param content 附件内容
- * @throws IOException
- */
- public static void writeAttachment(HttpServletResponse response, String filename, byte[] content) throws IOException {
- // 设置 header 和 contentType
- response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));
- response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
- // 输出附件
- IoUtil.write(response.getOutputStream(), false, content);
- }
- /**
- * @param request 请求
- * @return ua
- */
- public static String getUserAgent(HttpServletRequest request) {
- String ua = request.getHeader("User-Agent");
- return ua != null ? ua : "";
- }
- /**
- * 获得请求
- *
- * @return HttpServletRequest
- */
- public static HttpServletRequest getRequest() {
- RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
- if (!(requestAttributes instanceof ServletRequestAttributes)) {
- return null;
- }
- return ((ServletRequestAttributes) requestAttributes).getRequest();
- }
- public static String getUserAgent() {
- HttpServletRequest request = getRequest();
- if (request == null) {
- return null;
- }
- return getUserAgent(request);
- }
- public static String getClientIP() {
- HttpServletRequest request = getRequest();
- if (request == null) {
- return null;
- }
- return ServletUtil.getClientIP(request);
- }
- }
|