我有一个带有请求映射的控制器..
@Controller
public class TestController {
private static final String template = "Hello there, %s!";
private final AtomicLong counter = new AtomicLong();
@RequestMapping("/hello")
public @ResponseBody String hello() {
return "Hello";
}
}
我怎样才能使用户每次进入RequestMapping或者任何url时,调用其他方法将println打印到控制台,用户在实际进入方法“hello”之前所处的URL?
我想使用此方法确保用户将来拥有适当的凭据。我看到有@PreAuthorize注释,但似乎没有与之关联的方法,我可以编写自己的逻辑,即使用当前用户所在的URL对控制台进行简单的println。
答案 0 :(得分:0)
您有很多选择。
使用Spring,您可以实现并注册HandlerInterceptor
并实现其preHandle
方法来记录请求URL,您可以使用各种HttpServletRequest
方法重新构建请求URL。
使用纯servlet-api,您可以实现并注册自己的Filter
,它会记录请求URL,然后使用doFilter(..)
继续链接。
您还可以使用AOP,使用记录URL的@RequestMapping
建议通知所有@Before
带注释的方法。