gpt4 book ai didi

java - 使用Java过滤器停止提交请求

转载 作者:行者123 更新时间:2023-12-02 11:21:14 26 4
gpt4 key购买 nike

我有一个 Java 过滤器,允许根据 URL 继续或不允许请求,但是当请求来自表单时,我遇到了问题。

假设我有一个带有操作和提交按钮的 HTML 表单,然后过滤器评估请求,如果请求无效,我需要停止请求:

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
String requestDestination = ((HttpServletRequest) servletRequest).getRequestURI();
if ( requestDestination.contains("/url") ) {
HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;
Cookie denied = new Cookie("denied", "url");
httpResponse.addCookie(denied);
return;
}
}

问题是,尽管执行了此操作,浏览器还是会转到此 URL,显示一个空页面,但我需要的是停止此默认行为,只将用户留在同一页面中。

我无法使用 JavaScript,因为我不知道到底是谁触发了请求。

最佳答案

您无法“停止”该请求。浏览器提交表单后,它将等待响应并呈现该响应正文的内容。

因此,如果您的 servlet 过滤器阻止了请求,则您的过滤器有责任向浏览器返回适当的内容。这通常是某种类型的错误页面,其内容完全取决于您。

关于java - 使用Java过滤器停止提交请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49906942/

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