Java 从RESTWebService在Servlet之前调用筛选器

Java 从RESTWebService在Servlet之前调用筛选器,java,web-services,rest,servlets,servlet-filters,Java,Web Services,Rest,Servlets,Servlet Filters,我已经编写了一个REST web服务方法setToken(@Context-HttpServletRequest-request、@Context-HttpServletResponse-response、@PathParam(“token”)字符串标记)、HeaderFilter和SampleServlet。下面是web服务类 `@路径(“/服务”) 公务舱服务{ /*@Context private ServletContext servletContext; @Context pri

我已经编写了一个REST web服务方法
setToken(@Context-HttpServletRequest-request、@Context-HttpServletResponse-response、@PathParam(“token”)字符串标记)
HeaderFilter
SampleServlet
。下面是web服务类 `@路径(“/服务”) 公务舱服务{

/*@Context 
private ServletContext servletContext; 

@Context
private HttpServletRequest request;

@Context
private HttpServletResponse response;*/


@Path("/val/{token}")   
@GET
@Produces("application/xml")
public String setToken(@Context HttpServletRequest request, @Context HttpServletResponse response, @PathParam("token") String token) throws ServletException, IOException {
    String value=token;
    if(request==null){
        System.out.println("Request null");
    }
    System.out.println("Token: " + value);
    if(request!=null){
        request.setAttribute("param", value);
        Wrapper requestWrapper = new Wrapper(request);
        requestWrapper.addHeader("Authorization", token);
        request.getRequestDispatcher("/secure").include(requestWrapper, response);
    }
    return "<token>"+ "<value>"+value+" token value"+"</value>" + "</token>";
}
/*@Context
私有ServletContext ServletContext;
@上下文
私有HttpServletRequest;
@上下文
私有HttpServletResponse*/
@路径(“/val/{token}”)
@得到
@生成(“应用程序/xml”)
公共字符串setToken(@Context HttpServletRequest请求、@Context HttpServletResponse响应、@PathParam(“令牌”)字符串令牌)引发ServletException、IOException{
字符串值=令牌;
if(请求==null){
System.out.println(“请求为空”);
}
System.out.println(“令牌:+值);
if(请求!=null){
setAttribute(“参数”,值);
包装器请求包装器=新包装器(请求);
addHeader(“授权”,令牌);
getRequestDispatcher(“/secure”)。包括(requestWrapper,response);
}
返回“++”值“++”标记值“++”;
}
}`

setToken
web服务方法,我使用
request.getRequestDispatcher(“/secure”)调用
SampleServlet
和我使用的URL是。zzzz是要传递的值。
HeaderFilter
SampleServlet
的URL模式是/secure。现在问题是没有调用HeaderFilter,而是直接调用了“SampleServlet”。我做错什么了吗????请帮我度过难关

HeaderFilter和SampleServlet的URL模式为/secure。现在的问题是没有调用HeaderFilter,而是直接调用了“SampleServlet”

默认情况下,仅对来自web的请求调用筛选器。不会为内部“包含”和“转发”调用它们。要更改默认行为并调用过滤器,您必须在web.xml的过滤器映射元素中指定

<filter-mapping>
   <filter-name>myfilter</filter-name>
   <url-pattern>/secure</url-pattern>
   <dispatcher>FORWARD</dispatcher>
   <dispatcher>INCLUDE</dispatcher>
   <dispatcher>REQUEST</dispatcher>
</filter-mapping>

我的过滤器
/稳妥
向前地
包括
要求

你能分享你的web.xml吗