使用攔截器獲取HttpServletResponse 物件,HttpServletRequest物件
- 攔截器的配置說明
<mvc:interceptors>
<bean class="interceptor.HttpServletResponseInterceptor" />
</mvc:interceptors>
- 攔截器的實現
public class HttpServletResponseInterceptor extends HandlerInterceptorAdapter{
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
RequestResponseContext.setResponse(response);
return true;
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
RequestResponseContext.removeResponse();
}
}
- 這裡儲存的Httpresponse物件必須是多執行緒的,使用threadlocal解決這個問題,其實我們的tomact容器中也是這麼處理的,這裡不僅可以使用攔截器,其實原生的過濾器也是可以這麼處理的。我們在使用的時候就可以直接的使用啦!
public class RequestResponseContext {
private static ThreadLocal<HttpServletRequest> REQUEST_CHREADLOCAL = new ThreadLocal<HttpServletRequest>();
private static ThreadLocal<HttpServletResponse> REPONSE_THREADLOCAL = new ThreadLocal<HttpServletResponse>();
public static void setRequest(HttpServletRequest request) {
REQUEST_CHREADLOCAL.set(request);
}
public static HttpServletRequest getRequest() {
return REQUEST_CHREADLOCAL.get();
}
public static void removeRequest() {
REQUEST_CHREADLOCAL.remove();
}
public static void setResponse(HttpServletResponse response) {
REPONSE_THREADLOCAL.set(response);
}
public static HttpServletResponse getResponse() {
return REPONSE_THREADLOCAL.get();
}
public static void removeResponse() {
REPONSE_THREADLOCAL.remove();
}
}
相關推薦
使用攔截器獲取HttpServletResponse 物件,HttpServletRequest物件
攔截器的配置說明 <mvc:interceptors> <bean class="interceptor.HttpServletResponseInt
使用引數攔截器通過註解直接從JSON物件中獲取資料
場景:當前段傳過來的物件是JSON物件,當時我們使用的時候又是僅僅使用其中的部分欄位值的時候,可以通過實現引數攔截器來為我們自動將JSON中的key值賦值給引數 程式碼 1.自定義註解 @Target(ElementType.PARAMETER) @Retention(Re
【JFinal】JFinal的攔截器獲取和修改controller返回的json物件
感謝JFinal框架作者老哥詹波的指點 public class JsonInterceptor implements Interceptor { @SuppressWarnings(
Unity編輯器獲取資料夾下所有物件
有一次需要在Editor模式下獲取任意資料夾下的所有資源物件,包括子資料夾,我嘗試了AssetDatabase.LoadAllAssetsAtPath(string assetPath),理想中的Object[]沒有返回,而是給我返回了null;查閱google得知這個方法
Mybatis之攔截器--獲取執行SQL實現多客戶端數據同步
gin sign factor 方便 完成後 動態代理 exc batis 包安裝 最近的一個項目是將J2EE環境打包安裝在客戶端(使用 nwjs + NSIS 制作安裝包)運行, 所有的業務操作在客戶端完成, 數據存儲在客戶端數據庫中. 服務器端數據庫匯總各客戶端的數據進
類,物件,面向物件以及三大特徵
一、 類和物件 面向物件程式設計中兩個重要的概念:類和物件 1、簡單來說:物件的抽象化是類,類的具體化就是物件。類是一種抽象的概念,是對現實生活中事物的描述,類是對某一批物件的抽象,它不是實際存在的事物。物件是一個實際存在的實體,從這個意義上講,萬物都是物件。我們日常所說的人,都是人
魯棒圖的三元素:抽象物件,實體物件和控制物件
魯棒圖簡介 ADMEMS方法推薦以魯棒圖來輔助初步設計。那麼,什麼是魯棒圖呢? 8.2.1 魯棒圖的3種元素 魯棒圖包含3種元素(如圖8-2所示),它們分別是邊界物件、控制物件、實體物件: 邊界物件對模擬外部環境和未來系統之間的互動進行建模。邊界物件負責接收外部輸入,處理內部內
向List中資料新增實體物件,實體物件最後一個會把之前的內容覆蓋
錯誤的寫法:(這樣寫等於一直在操作同一個物件,物件中的內容都一樣) List<CommissionSystem> cList = new ArrayList<CommissionSystem>(); for (Goods goods : gList) {
js中的內建物件,宿主物件和自定義物件
JS中,可以將物件分為“內建物件”、“宿主物件”和“自定義物件”三種。 1,內建物件 js中的內建物件包括Array、Boolean、Date、Function、Global、Math、Number、Object、RegExp、String以及各種錯誤類物件,包括Erro
Java基礎---面向物件(面向物件,類,物件,匿名物件,封裝,建構函式,構造程式碼塊,this,static,main,幫助文件,靜態程式碼塊,單例)
一. 面向物件概念: 面向物件其實是一種思考的思想,早期思想是面向過程。 面向過程注重的是過程,過程所涉及的行為,也就是功能。 【例項】:面向過程: 1. 把冰箱開啟 2. 把大象放入 3. 冰箱關起來 面向物件: 開啟冰箱,儲存,關閉都是對冰箱的操作,是冰箱的行為
Hibernates關於臨時物件,持久化物件等等
org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1 at org
struts2使用AbstractInterceptor攔截器 獲取引數以及修改引數的值
public class AppLoginInterceptor extends AbstractInterceptor{ @Override public String intercept(ActionInvocation invocation) throws Exc
運用攔截器獲取@PathVariable的引數值
Map pathVariables = (Map) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE); String Id =&n
window物件,navigator物件,document文件物件,以及window下的其他物件
Window物件 屬性 innerHeight &n
axios post 請求tomcat,攔截器獲取不到getInputStream流中的資料
今天做專案,前端的大佬用axios傳送post請求,而我要利用過濾器和攔截器進行許可權的校驗,校驗的內容就是上送的某個欄位的內容,所以我們需要重寫request請求(request請求只能獲取一次,如果在攔截器中獲取,那麼控制器就獲取不到相應的引數),並且在攔截器中進行校驗,
angular4 使用HttpClient攔截器 檢查token失效,返回登入頁面
1、首先建立一個攔截器服務:InterceptorService.ts 2、在app.module.ts檔案裡引入攔截器 import {InterceptorService} from ‘./InterceptorService’; import {HTTP_INTERCEPTORS
攔截器和過濾器區別,Struts2與SpringMVC的區別
攔截器和過濾器 1.攔截器是基於java反射機制的,而過濾器是基於函式回撥的; 2.攔截器不依賴於servlet容器,而過濾器依賴於servlet容器; 3.攔截器只能對Action請求起作用,而過濾器則可以對幾乎所有請求起作用; 4.攔截器可以訪問Action上下文、值棧裡的物件,而過
陣列中巢狀物件,根據物件的某個字對物件進行去重
// 陣列中巢狀物件,根據物件的某個欄位進行物件去重 function uniqObj(data, name) { var dataArr = []; var dataObj = {}; for (var i = 0; i < data.length; i+
ServletConfig物件,ServletContext物件
ServletConfig物件 ServletConfig物件有什麼用? 通過此物件可以讀取web.xml中配置的初始化引數。 為什麼我們要把引數資訊放到web.xml檔案中呢?我們可以直接在程式中都可以定義引數資訊,搞到web.xml檔案中又有什麼好處呢? 好處就是:能
Springboot中自定義springmvc攔截器;HandlerInterceptor中preHandle,postHandle,afterCompletion解析
要實現自定義HandlerInterceptor 。通過 WebMvcConfigurer 的實現類屬性注入,完成springboot自定義攔截 自定義一個攔截器; package com.baidu.