Servlet和Filter有什么区别?您建议使用什么来授权页面?
发布于 2010-06-02 19:35:12
当您想要根据特定条件对Filter
请求进行过滤和/或修改时,请使用。当您想要控制、预处理和/或后处理请求时,请使用Servlet
。
Java EE tutorial提到了以下有关筛选器的内容:
过滤器是一个可以转换请求或响应的头和/或内容的对象。过滤器与web组件的不同之处在于,过滤器本身通常不会创建响应。相反,过滤器提供了可以“附加”到任何类型的web资源的功能。因此,筛选器不应该对其充当筛选器的web资源有任何依赖关系;这样,它可以由多种类型的web资源组成。
筛选器可以执行的主要任务如下:
从传递请求头部和数据的任何further.
对于授权,Filter
是最合适的。以下是筛选器如何检查已登录用户的请求的基本启动示例:
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);
}
}
发布于 2010-06-02 19:30:52
筛选器最适合授权。这是因为可以将它们配置为在站点的所有页面上运行。所以你只需要一个过滤器来保护你所有的页面。
发布于 2017-05-11 01:45:31
使用过滤器我们可以提高servlet的性能--当请求到来时,我们可以对请求进行预处理,如果请求满足,我们可以转发到servlet,否则向客户端提供消息,在请求中提供适当的信息。
https://stackoverflow.com/questions/2957165
复制相似问题