當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Springboot : RequestContextHolder
生活随笔
收集整理的這篇文章主要介紹了
Springboot : RequestContextHolder
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
- springboot 2.0.0.RELEASE
- sping-web 提供了 RequestContextHolder 。RequestContextHolder 讓開發者可以在請求的任意位置獲取到 request、response、session 等。
- 因 RequestContextHolder 是 sping-web 提供的,所以 springboot 中也可以使用。
獲取請求參數
RequestAttributes requestAttributes = RequestContextHolder.currentRequestAttributes(); //RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();//獲取請求參數 String str = (String) requestAttributes.getAttribute("name", RequestAttributes.SCOPE_REQUEST);從SESSION取值
RequestAttributes requestAttributes = RequestContextHolder.currentRequestAttributes();//從session里面獲取對應的值 String str = (String) requestAttributes.getAttribute("name", RequestAttributes.SCOPE_SESSION);獲取request、response、session
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request = attributes.getRequest(); HttpServletResponse response = attributes.getResponse(); HttpSession session = attributes.getRequest().getSession();getRequestAttributes vs currentRequestAttributes
/*** Return the RequestAttributes currently bound to the thread.* @return the RequestAttributes currently bound to the thread,* or {@code null} if none bound*/@Nullablepublic static RequestAttributes getRequestAttributes() {RequestAttributes attributes = requestAttributesHolder.get();if (attributes == null) {attributes = inheritableRequestAttributesHolder.get();}return attributes;} /*** Return the RequestAttributes currently bound to the thread.* <p>Exposes the previously bound RequestAttributes instance, if any.* Falls back to the current JSF FacesContext, if any.* @return the RequestAttributes currently bound to the thread* @throws IllegalStateException if no RequestAttributes object* is bound to the current thread* @see #setRequestAttributes* @see ServletRequestAttributes* @see FacesRequestAttributes* @see javax.faces.context.FacesContext#getCurrentInstance()*/public static RequestAttributes currentRequestAttributes() throws IllegalStateException {RequestAttributes attributes = getRequestAttributes();if (attributes == null) {if (jsfPresent) {attributes = FacesRequestAttributesFactory.getFacesRequestAttributes();}if (attributes == null) {throw new IllegalStateException("No thread-bound request found: " +"Are you referring to request attributes outside of an actual web request, " +"or processing a request outside of the originally receiving thread? " +"If you are actually operating within a web request and still receive this message, " +"your code is probably running outside of DispatcherServlet: " +"In this case, use RequestContextListener or RequestContextFilter to expose the current request.");}}return attributes;}總結
以上是生活随笔為你收集整理的Springboot : RequestContextHolder的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tpha是什么意思
- 下一篇: foreach循环怎么获取全部返回值_J