我现在在做一个系统,我想让点击“退出”链接后就把用户导航到登陆界面,并且通过“退出”链接触发js方法使session失效,达到用户必须登陆才能再进入系统。我“退出”触发的js方法中调用了setAttribute("user",null),session.invalidate()等方法都不管用,因为页面的其他地方也用到了session传递的参数,导致其他用到session的地方出错。
我的问题是:怎样达到点击“退出”链接后退出系统并且使该用户必须在登陆才能进入系统?是通过使session失效吗?怎么做呢?求大侠指导、指导~
我的问题是:怎样达到点击“退出”链接后退出系统并且使该用户必须在登陆才能进入系统?是通过使session失效吗?怎么做呢?求大侠指导、指导~
//...
//initialize RequestDispatcher object; set forward to home page by default
RequestDispatcher rd = request.getRequestDispatcher("home.jsp");//Prepare connection and statement
rs = stmt.executeQuery("select password from USER where userName = '" + userName + "'");
if (rs.next()) {
//Query only returns 1 record in the result set; only 1
password per userName which is also the primary key
if (rs.getString("password").equals(password)) { //If valid password
session.setAttribute("User", userName); //Saves username string in the session object
}
else { //Password does not match, i.e., invalid user password
request.setAttribute("Error", "Invalid password."); rd = request.getRequestDispatcher("login.jsp");
}
} //No record in the result set, i.e., invalid username
else { request.setAttribute("Error", "Invalid user name.");
rd = request.getRequestDispatcher("login.jsp");
}
}//As a controller, loginAction.jsp finally either forwards to "login.jsp" or "home.jsp"
rd.forward(request, response);
//... 退出就方便了Listing 2
//...
session.removeAttribute("User");
session.invalidate();
//...