Servlet和Filter有什么区别?您建议使用什么来授权页面?
Filter当你要根据特定条件过滤和/或修改请求时,请使用。使用Servlet时要控制,预处理和/或后处理请求。
Filter
Servlet
在Java EE的教程中提到有关筛选如下:
筛选器是可以转换请求或响应的标头和内容(或两者)的对象。过滤器与Web组件的不同之处在于,过滤器本身通常不会创建响应。相反,过滤器提供的功能可以“附加”到任何类型的Web资源。因此,过滤器不应依赖于充当过滤器的Web资源。这样,它可以由多种类型的Web资源组成。
过滤器可以执行的主要任务如下:
对于授权,a 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); } }