gpt4 book ai didi

java - Java Servlet 过滤器有何用处

转载 作者:行者123 更新时间:2023-12-01 22:03:45 27 4
gpt4 key购买 nike

我正在阅读有关Java过滤器的内容,我了解它的实现以及如何使用它,但我不知道我们为什么使用它。 当我读到过滤器用于过滤 url 以保存/保护资源免遭非法访问时,但我很困惑我们可以对 session 执行相同的操作 那么为什么要使用过滤器呢?阅读 here 的完整详细信息后。我得到的这一段太接近而无法阐明我的概念。

In the last article, we learned how we can manage session in web application and if we want to make sure that a resource is accessible only when user session is valid, we can achieve this using servlet session attributes. The approach is simple but if we have a lot of servlets and jsps, then it will become hard to maintain because of redundant code. If we want to change the attribute name in future, we will have to change all the places where we have session authentication.

好的,以上段落清除概念作为理论基础,但是任何人都可以向我展示一个程序示例,该示例表明过滤器对于 Java Servlet 确实有用。使用和不使用过滤器时 Web 应用程序或资源会如何影响?

最佳答案

假设您有一个包含 300 个 servlet 的大型 Web 应用程序,其中 250 个 Servlet 只有在您通过身份验证后才能访问。为了防止未经身份验证的用户访问这 250 个 servlet,您必须在每个 servlet 中重复以下伪代码:

if (!currentUser.isAuthenticated()) {
throw new ForbiddenException();
}

在引入第 251 个 servlet 时,您很可能会忘记添加该检查。

过滤器允许说出容器:对于所有发送到 /private/* 的请求,在调用映射到 URL 的 servlet 之前执行以下过滤器。

然后您就可以忘记检查 250 个 servlet 中的身份验证,而在过滤器中只执行一次。

当然还有其他用例:授权检查、日志记录、性能测量等。

关于java - Java Servlet 过滤器有何用处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33189195/

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