我需要實現類似過濾器或偵聽器的東西,它攔截HTTP請求併爲各種目的檢索HTTP頭。攔截服務器java中的HTTP請求
我使用Java,Jboss應用程序服務器和Web服務。我希望這個過濾系統在Web服務調用之前執行 - 正在考慮方面,但他們不保留HTTP相關的東西。過濾器後,應執行服務呼叫。
由於Jax-WS處理程序只保存SOAP有效內容,因此不適用於我。
任何想法?
在此先感謝。
我需要實現類似過濾器或偵聽器的東西,它攔截HTTP請求併爲各種目的檢索HTTP頭。攔截服務器java中的HTTP請求
我使用Java,Jboss應用程序服務器和Web服務。我希望這個過濾系統在Web服務調用之前執行 - 正在考慮方面,但他們不保留HTTP相關的東西。過濾器後,應執行服務呼叫。
由於Jax-WS處理程序只保存SOAP有效內容,因此不適用於我。
任何想法?
在此先感謝。
你能不能創建一個servlet過濾器來攔截所有來到你的web服務引擎的請求?如果您使用的是Axis或其他SOAP引擎,那麼我希望您應該能夠創建一個過濾器來攔截所有到達SOAP引擎提供的主Servlet的請求。
public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,ServletException
{
HttpServletRequest httpRequest=(HttpServletRequest)request;
HttpServletResponse httpResponse=(HttpServletResponse)response;
Enumeration headerNames = httpRequest.getHeaderNames();
while(headerNames.hasMoreElements()) {
String headerName = (String)headerNames.nextElement();
out.println(headerName);
out.println(request.getHeader(headerName));
}
chain.doFilter(request,response);
}
據我所知,過濾器接口只提供ServeletRequest和ServletResponse,它們不包含HTTP相關信息。編輯:我會需要HttpServletRequest對象。我可能在這裏錯過了什麼嗎? – Pascal 2010-09-28 19:36:54
幾乎所有你需要的應該在那裏..查看這裏的示例代碼。 – Shamik 2010-09-28 19:39:20
更多關於這裏http://download.oracle.com/javaee/1.3/api/javax/servlet/http/HttpServletRequest.html#getHeaderNames() – Shamik 2010-09-28 19:40:50