JAVA Web项目中常用工具类之 WebUtil

return responseBody != null;

}

@Nullable

public static String getCookieVal(String name) {

HttpServletRequest request = getRequest();

Assert.notNull(request, “request from RequestContextHolder is null”);

return getCookieVal(request, name);

}

@Nullable

public static String getCookieVal(HttpServletRequest request, String name) {

Cookie cookie = getCookie(request, name);

return cookie != null ? cookie.getValue() : null;

}

public static void removeCookie(HttpServletResponse response, String key) {

setCookie(response, key, (String)null, 0);

}

public static void setCookie(HttpServletResponse response, String name, @Nullable String value, int maxAgeInSeconds) {

Cookie cookie = new Cookie(name, value);

cookie.setPath(“/”);

cookie.setMaxAge(maxAgeInSeconds);

cookie.setHttpOnly(true);

response.addCookie(cookie);

}

public static HttpServletRequest getRequest() {

RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();

return requestAttributes == null ? null : ((ServletRequestAttributes)requestAttributes).getRequest();

}

public static void renderJson(HttpServletResponse response, Object result) {

renderJson(response, result, “application/json;charset=UTF-8”);

}

public static void renderJson(HttpServletResponse response, Object result, String contentType) {

response.setCharacterEncoding(“UTF-8”);

response.setContentType(contentType);

try {

PrintWriter out = response.getWriter();

Throwable var4 = null;

try {

out.append(JsonUtil.toJson(result));

} catch (Throwable var14) {

var4 = var14;

throw var14;

} finally {

if (out != null) {

if (var4 != null) {

try {

out.close();

} catch (Throwable var13) {

var4.addSuppressed(var13);

}

} else {

out.close();

}

}

}

} catch (IOException var16) {

log.error(var16.getMessage(), var16);

}

}

public static String getIP() {

return getIP(getRequest());

}

@Nullable

public static String getIP(@Nullable HttpServletRequest request) {

if (request == null) {

return “”;

} else {

String ip = null;

String[] var2 = IP_HEADER_NAMES;

int var3 = var2.length;

for(int var4 = 0; var4 < var3; ++var4) {

String ipHeader = var2[var4];

ip = request.getHeader(ipHeader);

if (!IP_PREDICATE.test(ip)) {

break;

}

}

if (IP_PREDICATE.test(ip)) {

ip = request.getRemoteAddr();

}

return StringUtils.isBlank(ip) ? null :splitTrim(ip, “,”)[0];

}

}

public static String[] splitTrim(String splitStr,String regex) {

return splitStr.trim().split(regex);

}

public static String getHeader(String name) {

HttpServletRequest request = getRequest();

return ((HttpServletRequest)Objects.requireNonNull(request)).getHeader(name);

}

public static Enumeration getHeaders(String name) {

HttpServletRequest request = getRequest();

return ((HttpServletRequest)Objects.requireNonNull(request)).getHeaders(name);

}

public static Enumeration getHeaderNames() {

HttpServletRequest request = getRequest();

return ((HttpServletRequest)Objects.requireNonNull(request)).getHeaderNames();

}

public static String getParameter(String name) {

HttpServletRequest request = getRequest();

return ((HttpServletRequest)Objects.requireNonNull(request)).getParameter(name);

}

public static String getRequestBody(ServletInputStream servletInputStream) {

StringBuilder sb = new StringBuilder();

BufferedReader reader = null;

try {

reader = new BufferedReader(new InputStreamReader(servletInputStream, StandardCharsets.UTF_8));

String line;

while((line = reader.readLine()) != null) {

sb.append(line);

}

} catch (IOException var16) {

var16.printStackTrace();

} finally {

if (servletInputStream != null) {

try {

Java核心架构进阶知识点

面试成功其实都是必然发生的事情,因为在此之前我做足了充分的准备工作,不单单是纯粹的刷题,更多的还会去刷一些Java核心架构进阶知识点,比如:JVM、高并发、多线程、缓存、Spring相关、分布式、微服务、RPC、网络、设计模式、MQ、Redis、MySQL、设计模式、负载均衡、算法、数据结构、kafka、ZK、集群等。而这些也全被整理浓缩到了一份pdf——《Java核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的

image

image

image

内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补

设计模式、MQ、Redis、MySQL、设计模式、负载均衡、算法、数据结构、kafka、ZK、集群等。而这些也全被整理浓缩到了一份pdf——《Java核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的

[外链图片转存中…(img-Vn8VMqBv-1714309897848)]

[外链图片转存中…(img-ckI4CGZY-1714309897849)]

[外链图片转存中…(img-LsrTQD6r-1714309897849)]

内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 24
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值