检验用户登录信息(使有Filter,不过不完全方便)——2.0版
检测用户是否登陆的过滤器:
1). 情景: 系统中的某些页面只有在正常登陆后才可以使用,
用户请求这些页面时要检查 session 中有无该用户信息, 但在所有必要的页面加上session的判断相当麻烦的事情
2). 解决方案:编写一个用于检测用户是否登陆的过滤器, 如果用户未登录, 则重定向到指的登录页面
3). 要求:需检查的在 Session 中保存的关键字; 如果用户未登录,需重定向到指定的页面(URL不包括 ContextPath);
不做检查的URL列表(以分号分开,并且 URL 中不包括 ContextPath)都要采取可配置的方式
<!-- 配置当前 web 应用的安全信息 -->
<!-- 配置用户正常登录后, 把用户信息保存在 Session 中的关键字 -->
<context-param>
<param-name>loginSessionKey</param-name>
<param-value>LOGIN-SESSION-KEY</param-value>
</context-param>
<!-- 配置用户的登录页面 -->
<context-param>
<param-name>loginPage</param-name>
<param-value>/login/login.jsp</param-value>
</context-param>
<!-- 配置不需要受保护的 url 列表 -->
<context-param>
<param-name>uncheckedPages</param-name>
<param-value>/login/login.jsp,/login/login-process.jsp,/login/articles.jsp,/login/logout.jsp</param-value>
</context-param>
4). 具体: article1.jsp, article2.jsp, article3.jsp, article4.jsp 必须登录之后才可以访问, 而 articles.jsp,
login.jsp, login-process.jsp, logout.jsp 即使没有登录也可访问.
login.jsp
login-process.jsp
articles.jsp
logout.jsp
article1.jsp
web.xml