1. 程式人生 > >AsyncContext的中文Api,谷歌翻譯

AsyncContext的中文Api,谷歌翻譯

看完Api,英語我不懂也就算了,漢語我也不懂了?MMP 

方法名 翻譯

使用最新的非同步迴圈註冊給定的AsyncListener,該非同步迴圈是通過呼叫其中一個ServletRequest.startAsync方法啟動的。

當非同步迴圈成功完成,超時或導致錯誤時,給定的AsyncListener將收到AsyncEvent。

AsyncListener例項將按新增順序通知。

引數: 監聽要註冊的AsyncListener 丟擲: IllegalStateException - 如果在容器啟動的排程之後呼叫此方法,在該排程期間呼叫了一個ServletRequest.startAsync方法,則返回到容器

使用最新的非同步迴圈註冊給定的AsyncListener,該非同步迴圈是通過呼叫其中一個ServletRequest.startAsync方法啟動的。 當非同步迴圈成功完成,超時或導致錯誤時,給定的AsyncListener將收到AsyncEvent。

AsyncListener例項將按新增順序通知。

給定的ServletRequest和ServletResponse物件將分別通過傳遞給它的AsyncEvent的getSuppliedRequest和getSuppliedResponse方法提供給給定的AsyncListener。在傳遞AsyncEvent時,不應分別讀取或寫入這些物件,因為自從註冊了給定的AsyncListener以來可能已經發生了額外的包裝,但是可以使用它來釋放與它們相關聯的任何資源。

引數: 監聽要註冊的AsyncListener servletRequest將包含在AsyncEvent中的ServletRequest servletResponse將包含在AsyncEvent中的ServletResponse 丟擲: IllegalStateException - 如果在容器啟動的排程之後呼叫此方法,在該排程期間呼叫了一個ServletRequest.startAsync方法,則返回到容器

完成在用於初始化此AsyncContext的請求上啟動的非同步操作,關閉用於初始化此AsyncContext的響應。 任何型別為AsyncListener的偵聽器都將在其onComplete方法中呼叫,這些偵聽器是為建立此AsyncContext的ServletRequest註冊的。

在呼叫ServletRequest.startAsync()或ServletRequest.startAsync(ServletRequest,ServletResponse)之後,以及在呼叫此類的某個排程方法之前,隨時呼叫此方法是合法的。 如果在呼叫startAsync的容器啟動的排程返回到容器之前呼叫此方法,則呼叫將不會生效(並且AsyncListener.onComplete(AsyncEvent)的任何呼叫都將被延遲),直到容器啟動的排程具有 返回容器。

例項化給定的AsyncListener類。

返回的AsyncListener例項可以在通過呼叫其中一個addListener方法向此AsyncContext註冊之前進一步自定義。

給定的AsyncListener類必須定義零引數建構函式,該建構函式用於例項化它。

如果給定的clazz表示託管Bean,則此方法支援資源注入。 有關託管Bean和資源注入的其他詳細資訊,請參閱Java EE平臺和JSR 299規範。

將此AsyncContext的請求和響應物件排程到servlet容器。

如果非同步迴圈是使用ServletRequest.startAsync(ServletRequest,ServletResponse)啟動的,並且傳遞的請求是HttpServletRequest的例項,那麼分派是由javax.servlet.http.HttpServletRequest.getRequestURI返回的URI。否則,在容器最後一次排程請求時,排程將傳送到請求的URI。

以下序列說明了這將如何工作:

 //請求傳送到/ url / A.  AsyncContext ac = request.startAsync();  ...  ac.dispatch(); // ASYNC傳送到/ url / A.    // FORWARD派遣到/ url / B.  的getRequestDispatcher( “/ URL / B”)向前(請求,響應)。  //從FORWARD的目標中啟動非同步操作  //派遣  ac = request.startAsync();  ...  ac.dispatch(); // ASYNC傳送到/ url / A.    // FORWARD派遣到/ url / B.  的getRequestDispatcher( “/ URL / B”)向前(請求,響應)。  //從FORWARD的目標中啟動非同步操作  //派遣  ac = request.startAsync(request,response);  ...  ac.dispatch(); // ASYNC傳送到/ url / B.   在將請求和響應物件傳遞給將在其上執行排程操作的容器管理執行緒之後,此方法立即返回。如果在呼叫startAsync的容器啟動的排程返回到容器之前呼叫此方法,則排程操作將延遲到容器啟動的排程返回容器之後。

請求的排程程式型別設定為DispatcherType.ASYNC。與前向排程不同,響應緩衝區和標頭不會被重置,即使響應已經提交,排程也是合法的。

對請求和響應的控制被委託給排程目標,並且在排程目標完成執行時將關閉響應,除非呼叫ServletRequest.startAsync()或ServletRequest.startAsync(ServletRequest,ServletResponse)。

在執行此方法期間可能發生的任何錯誤或異常必須由容器捕獲和處理,如下所示:

在onError方法中呼叫所有為此AsyncContext建立的ServletRequest註冊的AsyncListener例項,並通過AsyncEvent.getThrowable使捕獲的Throwable可用。 如果沒有任何偵聽器呼叫complete或任何排程方法,請執行狀態程式碼等於HttpServletResponse.SC_INTERNAL_SERVER_ERROR的錯誤排程,並使上述Throwable可用作RequestDispatcher.ERROR_EXCEPTION請求屬性的值。 如果未找到匹配的錯誤頁面,或者錯誤頁面未呼叫complete或任何排程方法,請呼叫complete。 每個非同步迴圈最多隻能有一個非同步排程操作,它是通過呼叫其中一個ServletRequest.startAsync方法啟動的。在同一非同步迴圈中執行其他非同步分派操作的任何嘗試都將導致IllegalStateException。如果隨後在排程請求上呼叫startAsync,則可以呼叫任何排程或完整方法。

丟擲: IllegalStateException - 如果已呼叫其中一個排程方法,並且在生成的排程期間未呼叫startAsync方法,或者呼叫了complete 也可以看看: ServletRequest.getDispatcherType

將此AsyncContext的請求和響應物件排程到給定路徑。

path引數的解釋方式與ServletRequest.getRequestDispatcher(String)中的相同,在ServletContext的範圍內,初始化此AsyncContext。

請求的所有與路徑相關的查詢方法必須反映排程目標,而原始請求URI,上下文路徑,路徑資訊,servlet路徑和查詢字串可以從ASYNC_REQUEST_URI,ASYNC_CONTEXT_PATH,ASYNC_PATH_INFO,ASYNC_SERVLET_PATH和ASYNC_QUERY_STRING屬性中恢復。請求。即使在重複排程的情況下,這些屬性也將始終反映原始路徑元素。

每個非同步迴圈最多隻能有一個非同步排程操作,它是通過呼叫其中一個ServletRequest.startAsync方法啟動的。在同一非同步迴圈中執行其他非同步分派操作的任何嘗試都將導致IllegalStateException。如果隨後在排程請求上呼叫startAsync,則可以呼叫任何排程或完整方法。

有關其他詳細資訊,請參閱dispatch(),包括錯誤處理。

引數: path分派目標的路徑,作用於從中初始化此AsyncContext的ServletContext 丟擲: IllegalStateException - 如果已呼叫其中一個排程方法,並且在生成的排程期間未呼叫startAsync方法,或者呼叫了complete 也可以看看: ServletRequest.getDispatcherType

將此AsyncContext的請求和響應物件分派到作用於給定上下文的給定路徑。

path引數的解釋方式與ServletRequest.getRequestDispatcher(String)中的方式相同,只是它的作用域是給定的上下文。

請求的所有與路徑相關的查詢方法必須反映排程目標,而原始請求URI,上下文路徑,路徑資訊,servlet路徑和查詢字串可以從ASYNC_REQUEST_URI,ASYNC_CONTEXT_PATH,ASYNC_PATH_INFO,ASYNC_SERVLET_PATH和ASYNC_QUERY_STRING屬性中恢復。請求。即使在重複排程的情況下,這些屬性也將始終反映原始路徑元素。

每個非同步迴圈最多隻能有一個非同步排程操作,它是通過呼叫其中一個ServletRequest.startAsync方法啟動的。在同一非同步迴圈中執行其他非同步分派操作的任何嘗試都將導致IllegalStateException。如果隨後在排程請求上呼叫startAsync,則可以呼叫任何排程或完整方法。

有關其他詳細資訊,請參閱dispatch(),包括錯誤處理。

引數: context是排程目標的ServletContext path排程目標的路徑,作用域為給定的ServletContext 丟擲: IllegalStateException - 如果已呼叫其中一個排程方法,並且在生成的排程期間未呼叫startAsync方法,或者呼叫了complete 也可以看看: ServletRequest.getDispatcherType

boolean javax.servlet.AsyncContext.hasOriginalRequestAndResponse()

 

檢查是否使用原始或應用程式包裝的請求和響應物件初始化了此AsyncContext。

在請求進入非同步模式後,在出站方向呼叫的過濾器可以使用此資訊,以確定在非同步操作期間是否需要保留在入站呼叫期間新增的任何請求和/或響應包裝器 ,或可能會被釋放。

返回: 如果通過呼叫ServletRequest.startAsync()使用原始請求和響應物件初始化此AsyncContext,或者通過呼叫ServletRequest.startAsync(ServletRequest,ServletResponse)初始化它,並且ServletRequest和ServletResponse引數都不攜帶任何應用程式提供的包裝器,則返回true; 否則是假的

使容器可能從託管執行緒池排程執行緒,以執行指定的Runnable。 容器可以將適當的上下文資訊傳播到Runnable。

引數: 執行非同步處理程式