[英]How to retrieve Jersey ContainerRequest properties?
我在Tomcat中有一個Java 1.6 Web應用程序,帶有一個使用Jersey 1.x的REST api。 在ContainerRequestFilter中,我想設置一個屬性,然后稍后再檢索它。
我在過濾器類中以以下代碼開始:
containerRequest.getProperties().setProperty("programId","foo");
但是我以后如何准確檢索呢?
該規范說:“在Servlet容器中,屬性與ServletRequest同步,並公開ServletRequest中可用的所有屬性。對屬性的任何修改也反映在關聯的ServletRequest的屬性集中。”
當我嘗試檢索該屬性時,我具有HttpServletRequest對象的句柄,但該對象沒有“ .getProperties()”方法。
為了解決這個問題,我最終在過濾器類中添加了如下一行: HttpServletRequest.setAttribute("programId", "foo");
我后來能夠使用(String)request.getAttribute("programId")
。 但是我很好奇應該如何檢索這些屬性。
我一直試圖在一天中的大部分時間里找到解決問題的方法-最終結果是,我認為除了注入請求並將其轉換為一個請求外,沒有其他現成的機制ContainerRequest,如下所示:
public Response resourceMethod(@Context Request request) {
ContainerRequest containerRequest = (ContainerRequest) request;
MyProperty prop = (MyProperty) containerRequest.getProperties().get("myPropertyName");
我真的不喜歡在資源中執行此操作,因此繼續使用自定義注入,如Jersey 1.x的自定義注釋注入中所述。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.