首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring aspects前进并取消先前的请求

Spring aspects前进并取消先前的请求
EN

Stack Overflow用户
提问于 2012-08-25 00:37:05
回答 1查看 1.2K关注 0票数 0

这是我的问题

我想在任何spring控制器调用之前拦截请求,检查并修改请求URI。在此之后,它必须调用另一个SPRING控制器方法。

我使用了mvc:interceptors,但是我想用注解来配置它,这就是为什么我需要一个@Aspect的解决方案。一切都正常,但控制器调用了两次,分别用于原始请求和新请求。使用拦截器,我返回了false,但它取消了它,我该如何处理方面类?谢谢

下面是我的代码:

代码语言:javascript
复制
@Component
@Aspect
public class TestAspect {

    @Before("execution(* mycontroller.*(..))  &&" + "args(request,response)")
    public void interceptUrl(HttpServletRequest request, HttpServletResponse response) {

        System.out.println("@Aspect is running!");
        System.out.println(request.getRequestURI());

        if (request.getAttribute("client") == null) {
            request.setAttribute("client", "test");
            request.getRequestDispatcher("/newpath/contact").forward(request, response);
        }

    }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-25 00:42:57

你应该考虑@Around建议而不是@Before。在这种情况下,您可以简单地不执行原始请求链。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12113394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档