通常我们会遇到这样的情况,当我们点击想要获取网站的某处URL资源的时候,会弹出提醒你要登陆的界面,在这里展示一下可能的一种实现。
框架:struts
设计思路 :1.login.jsp实现登录界面,将表单提交到后台Action。
2.在Aciton中实现账号密码的验证。如果验证通过执行session.put("loginInfo",username);
3.当需要获取某个资源的时候(假设为auth),先通过后台interceptor(拦截器),期间通过session.get("loginInfo")判空,返回不同的值
4. 在struts.xml配置 <action name="auth">中 result标签实现返回值与物理资源的映射,可以实现步骤3中session.get("loginInof")为空时弹出login.jsp页面
实现细节:1.web.xml中配置,StrutsPreparedAndExcuteFilter。
2.在struts.xml package中配置两个action(login与auth)以及相关的result,需要注册一个interceptor,并结合默认intercrptor形成一个拦截器栈,绑定到action配置中。
3.loginAction以及Interceptor两个java类的实现。
讨论:1.为什么登陆后长时间没有操作。会提醒你重新提醒你登陆?
--------session过期了
2.为什么曾经登陆过的网站。再次进入它仍然处于登陆状态
--------这不是session,而是当初登陆的时候,浏览器通过cookie将账号密码保存在了本地,当你再次登陆的时候,通过遍历cookie自动登陆了