Java Servlet与过滤器

Java Servlet与过滤器,java,servlets,servlet-filters,Java,Servlets,Servlet Filters,Servlet和过滤器之间的区别是什么?您建议使用什么进行页面授权?过滤器最适合进行授权。这是因为它们可以配置为在站点的所有页面上运行。因此,您只需要一个筛选器即可保护所有页面。如果您希望根据特定条件筛选和/或修改请求,请使用筛选器。当您想要控制、预处理和/或后处理请求时,请使用Servlet 中提到了有关过滤器的以下内容: 筛选器是可以转换请求或响应的标题和内容(或两者)的对象。过滤器与web组件的不同之处在于过滤器本身通常不会创建响应。相反,过滤器提供的功能可以“附加”到任何类型的web资源

Servlet过滤器之间的区别是什么?您建议使用什么进行页面授权?

过滤器最适合进行授权。这是因为它们可以配置为在站点的所有页面上运行。因此,您只需要一个筛选器即可保护所有页面。

如果您希望根据特定条件筛选和/或修改请求,请使用
筛选器。当您想要控制、预处理和/或后处理请求时,请使用
Servlet

中提到了有关过滤器的以下内容:

筛选器是可以转换请求或响应的标题和内容(或两者)的对象。过滤器与web组件的不同之处在于过滤器本身通常不会创建响应。相反,过滤器提供的功能可以“附加”到任何类型的web资源。因此,过滤器不应该对其作为过滤器的web资源有任何依赖关系;通过这种方式,它可以由多种类型的web资源组成

过滤器可以执行的主要任务如下:

  • 查询请求并相应地采取行动
  • 阻止请求和响应对进一步传递
  • 修改请求头和数据。您可以通过提供定制版本的请求来实现这一点
  • 修改响应头和数据。您可以通过提供定制版本的响应来实现这一点
  • 与外部资源互动
对于授权,最适合使用
过滤器
。以下是筛选器如何检查登录用户请求的基本启动示例:

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
    if (((HttpServletRequest) request).getSession().getAttribute("user") == null) {
        // User is not logged in. Redirect to login page.
        ((HttpServletResponse) response).sendRedirect("login");
    } else {
        // User is logged in. Just continue with request.
        chain.doFilter(request, response);
    }
}

使用过滤器可以提高servlet性能--
当请求到来时,我们可以对请求执行预处理,若请求满足,那个么我们可以转发到servlet,否则将消息发送给客户端,并在请求中提供适当的信息

所有页面=可能需要登录的页面。