Kau*_*shi 0 java rest web-services servlets servlet-filters
我编写了一个REST Web服务方法setToken(@Context HttpServletRequest request, @Context HttpServletResponse response, @PathParam("token") String token),HeaderFilter并且SampleServlet.下面是Web服务类`@Path("/ service")公共类Service {
/*@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>";
}
Run Code Online (Sandbox Code Playgroud)
}`
从使用的setTokenWeb服务方法和SampleServlet使用request.getRequestDispatcher("/secure").include(request, response);的URL是http:// localhost:8080/xxxx/xxxx/service/val/zzzz.zzzz是要传递的值.用于HeaderFilter和SampleServlet/的安全的URL模式.现在问题是HeaderFilter没有调用,直接调用'SampleServlet'.我做错什么???? 请帮我解决这个问题.
HeaderFilter和SampleServlet的URL模式是/ secure.现在问题是没有调用HeaderFilter并直接调用'SampleServlet'.
默认情况下,仅对源自Web的请求调用过滤器.内部"包含"和"转发"不会调用它们.要更改默认行为并调用过滤器,您必须在web.xml的filter-mapping元素中指定它
<filter-mapping>
<filter-name>myfilter</filter-name>
<url-pattern>/secure</url-pattern>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2347 次 |
| 最近记录: |