我需要实现类似过滤器或侦听器的东西,它拦截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