Spring拦截器/过滤器
问题描述:
我需要在我的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