SpringMVC-RequestContextHolder的使用 -- 轉載

後端小哥_全棧的心發表於2020-10-13

SpringMVC-RequestContextHolder的使用 -- 轉載

最近遇到的問題是在service獲取request和response,正常來說在service層是沒有request的,然而直接從controlller傳過來的話解決方法太粗暴,後來發現了SpringMVC提供的RequestContextHolder遂去分析一番,並藉此對SpringMVC的結構深入瞭解一下,後面會再發文章詳細分析原始碼

1.RequestContextHolder的使用

RequestContextHolder顧名思義,持有上下文的Request容器.使用是很簡單的,具體使用如下:

//兩個方法在沒有使用JSF的專案中是沒有區別的
RequestAttributes requestAttributes = RequestContextHolder.currentRequestAttributes();
//                                            RequestContextHolder.getRequestAttributes();
//從session裡面獲取對應的值
String str = (String) requestAttributes.getAttribute("name",RequestAttributes.SCOPE_SESSION);

HttpServletRequest request = ((ServletRequestAttributes)requestAttributes).getRequest();
HttpServletResponse response = ((ServletRequestAttributes)requestAttributes).getResponse();

更多可檢視連結
https://zhuanlan.zhihu.com/p/24293062?refer=dreawer

轉載連結:
https://zhuanlan.zhihu.com/p/24293062?refer=dreawer

相關文章