RequestContext.java 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package org.ssssssss.magicapi.context;
  2. import javax.servlet.http.HttpServletRequest;
  3. import javax.servlet.http.HttpServletResponse;
  4. public class RequestContext {
  5. private static final ThreadLocal<RequestAttribute> REQUEST_ATTRIBUTE_THREAD_LOCAL = new InheritableThreadLocal<>();
  6. public static void setRequestAttribute(HttpServletRequest request, HttpServletResponse response) {
  7. REQUEST_ATTRIBUTE_THREAD_LOCAL.set(new RequestAttribute(request, response));
  8. }
  9. public static HttpServletRequest getHttpServletRequest() {
  10. RequestAttribute requestAttribute = REQUEST_ATTRIBUTE_THREAD_LOCAL.get();
  11. return requestAttribute == null ? null : requestAttribute.request;
  12. }
  13. public static HttpServletResponse getHttpServletResponse() {
  14. RequestAttribute requestAttribute = REQUEST_ATTRIBUTE_THREAD_LOCAL.get();
  15. return requestAttribute == null ? null : requestAttribute.response;
  16. }
  17. public static void remove() {
  18. REQUEST_ATTRIBUTE_THREAD_LOCAL.remove();
  19. }
  20. private static class RequestAttribute {
  21. private final HttpServletRequest request;
  22. private final HttpServletResponse response;
  23. public RequestAttribute(HttpServletRequest request, HttpServletResponse response) {
  24. this.request = request;
  25. this.response = response;
  26. }
  27. }
  28. }