gpt4 book ai didi

spring-mvc - 如何使用 Spring MVC 在 preHandle 中判断请求何时是转发?

转载 作者:行者123 更新时间:2023-12-04 21:03:36 25 4
gpt4 key购买 nike

我有以下...

@GetMapping("signup")
public String get(){
return "forward:/";
}

@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler) throws IOException {
...
if(!per.isPresent() && !request.getRequestURL().toString().contains("signup")){
response.sendRedirect("/signup");
return false;
}
}

这里的问题是当转发到来时它不是注册所以我重定向回来。但是,我也想拦截直接进入根目录的请求。

有什么方法可以判断请求是否是转发以及原始 url 是什么?

最佳答案

这是我想出的解决方案。我不喜欢这个答案,当看起来应该可以使用它是转发的信息时,我宁愿不附加自定义标题。但是,由于我在文档中找不到该信息,所以我只是添加了标题...

@GetMapping("")
public String get(HttpServletResponse response){
response.setHeader("signup","true");
return "forward:/";
}

然后我查了一下
private static boolean isSignupForward(HttpServletResponse response){
return Boolean.valueOf(response.getHeader("signup"));
}
...
if(
!isSignupForward(response) &&
!per.isPresent() &&
!isSignup(request) &&
!isJsFile(request)
){
response.sendRedirect("/signup");
return false;
}

如果有人有更好的答案,我会留下赏金。

关于spring-mvc - 如何使用 Spring MVC 在 preHandle 中判断请求何时是转发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52392124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com