JSP和Struts解决用户退出问题
时间:2007-10-22 来源:不详 作者:林子
从form中获取用户提交的认证信息并经过验证后,登陆动作简单地往HttpSession对象中写入一个用户名,退出动作则做相反的工作,它从用户的HttpSession对象中删除用户名并调用invalidate()方法销毁HttpSession。为了使登陆和退出动作真正发挥作用,所有受保护的JSP页面都应该首先验证HttpSession中是否包含了用户名以确认当前用户是否已经登陆。如果HttpSession中包含了用户名,也就是说用户已经登陆,Web应用则将剩余的JSP页发送给浏览器,否则,JSP页将跳转到登陆页login.jsp。页面home.jsp,secure1.jsp,secure2.jsp和logout.jsp均包含清单3中的代码段: copyright dedecms
Listing 3//...String userName =(String)session.getAttribute(User);if (null==userName) request.setAttribute(Error, Session has ended.Pleaselogin.); RequestDispatcher rd=request.getRequestDispatcher(login.jsp); rd.forward(request,response);//...//Allowthe rest of the dynamic content in this JSPto be served to thebrowser//...
在这个代码段中,程序从HttpSession中减缩username字符串。如果字符串为空,Web应用则自动中止执行当前页面并跳转到登陆页,同时给出Sessionhasended. Please log in.的提示;如果不为空,Web应用则继续执行,也就是把剩余的页面提供给用户。
运行logoutSampleJSP1
运行logoutSampleJSP1将会出现如下几种情形:
1) 如果用户没有登陆,Web应用将会正确中止受保护页面home.jsp,secure1.jsp,secure2.jsp和logout.jsp的执行,也就是说,假如用户在浏览器地址栏中直接敲入受保护JSP页的地址试图访问,Web应用将自动跳转到登陆页并提示Sessionhasended.Please log in.
2) 同样的,当一个用户已经退出,Web应用也会正确中止受保护页面home.jsp,secure1.jsp,secure2.jsp和logout.jsp的执行
上一篇:JSP与XML的结合 下一篇:Taglib 原理和实现之嵌套和属性读取
文章评论
共有位Admini5网友发表了评论 查看完整内容