我正在开发我的第一个基于Java的网站。要在访问配置文件或任何其他敏感资源时检查用户是否已登录,我实现了过滤器。因为我在互联网上到处都发现我们应该使用过滤器进行登录检查(>因为它似乎是“标准”编码方式)。但它只执行以下检查:
if(session.getAttribute("user")==null||session.getAttribute("user")=="")
request.getRequestDispatcher("WEB-INF\\webpages\\SignIn.html").include(request, response);
else
chain.doFilter().
但为了避免“NullPointerException”,我已经在各处实现了以下“检查”:
if(session.getAttribute("user")==null||session.getAttribute("user")=="")
所以我觉得我不应该使用过滤器进行登录检查,因为无论如何它增加了代码设计的复杂性,例如在url映射等方面付出额外的努力。所以,我真的应该使用过滤器“仅用于登录检查”吗?
最好在过滤器中进行会话检查实现,而不是在每个Servlet / JSP中实现相同的检查。这会阻止未经身份验证的用户首先访问受限资源。