0
我需要在我的spring-jersey應用程序中編寫一個攔截器/過濾器,它將檢查每個會話請求,並在成功時將代碼傳遞給相應的控制器。傳遞這個代碼是imp,因爲基於代碼控制器將決定進一步的行動。Spring攔截器/過濾器
問: 1)這是可能在春季寫這種登錄過濾器嗎?怎麼樣? 2)這是可能從攔截器傳遞一些代碼給控制器嗎?怎麼樣?
我需要在我的spring-jersey應用程序中編寫一個攔截器/過濾器,它將檢查每個會話請求,並在成功時將代碼傳遞給相應的控制器。傳遞這個代碼是imp,因爲基於代碼控制器將決定進一步的行動。Spring攔截器/過濾器
問: 1)這是可能在春季寫這種登錄過濾器嗎?怎麼樣? 2)這是可能從攔截器傳遞一些代碼給控制器嗎?怎麼樣?
我們需要實現ContainerRequestFilter接口來創建Jersey過濾器。以下是用於攔截和修改使用的球衣過濾器請求的代碼示例:
import com.sun.jersey.spi.container.ContainerRequest;
import com.sun.jersey.spi.container.ContainerRequestFilter;
import javax.ws.rs.core.MultivaluedMap;
import org.apache.log4j.Logger;
/**
*
* @author arnav
*/
public class MyAppFilter implements ContainerRequestFilter{
public ContainerRequest filter(ContainerRequest request) {
MultivaluedMap<String, String> headers = request.getRequestHeaders();
headers.add("code", "MY_APP_CODE");
request.setHeaders((InBoundHeaders)headers);
return request;
}
}
加入這個類後,我們需要爲我們的web應用程序註冊此過濾器。因此,現在我們將在我們的web.xml中添加以下幾行代碼:
<servlet>
..........
..........
<init-param>
<param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
<param-value>package.MyAppFilter</param-value>
</init-param>
</servlet>
spring-jersey?那麼你是使用@Controller還是JSR-311註釋?兩種情況下的答案都會有所不同。 – goroncy
從控制器來說,我的意思是澤西的控制器(JSR-311註釋)。 – Arnav