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