【发布时间】:2012-01-15 06:07:46
【问题描述】:
我有一个 login.jsp 网页,当用户单击我的网页提交按钮时,我有两个用于用户名和密码的文本框**
被转发到jsp servlet checkpass.jsp where
- 代码检查用户的真实性,即检查用户名和密码的正确性,
- 如果用户有效,则创建会话,我设置了一些seeion 属性,如名称、id 等和
- 取决于用户类型,即他是管理员还是只是用户,我再次将我的 checkpass.jsp 页面转发到特定页面。这所有的编码都是在 check pass.jsp 中完成的
** 我阻止了大部分页面的缓存。但是像 login.jsp、logout.jsp、index.jsp 这样的页面。仅当用户有效时才创建会话我没有编写代码来检查类似于代码的会话
<%
try{
String username = session.getValue("UserName").toString();
String s_Password = session.getValue("password").toString();
String id = session.getValue("ID").toString();
// String s_Email = session.getValue("email").toString();
if ((username==null) || (s_Password==null) || (id==null))
{
%>
<jsp:forward page="index.jsp?error=You have Logged Out !!!" />
<%
}}
catch(Exception e)
{
e.printStackTrace();
%><jsp:forward page="index.jsp?error=" />
<%
}
%>
这样的代码不存在。那么会发生什么,虽然我阻止了其他包括 checkpass.jsp 的缓存,但当我通过 session.invalidate() 方法终止会话时。因此,当我使用浏览器的后退按钮时,它不会显示所有页面,所有页面都被重定向到 index.jsp,正如我上面编码的那样。但是由于没有这样的代码,所以 checkpass.jsp 浏览器向我显示了一些消息,说 尝试重新加载页面,因为此页面需要一些数据,即我猜用户名和密码,当我按下浏览器的刷新按钮时它会显示我我的 admin.jsp 页面 我希望当任何人注销时,尽管我按下浏览器的返回或刷新按钮按钮,但不应显示任何网页。这是我的网络应用程序。为此,我正在使用 net beans 和 MySQL 和 Apache tomcat。请帮助我摆脱问题。我很乐意提供更多信息。如果需要
【问题讨论】:
-
嘿,我真的被困在这里了,我是学生,正在做一个项目
标签: jsp session refresh logout