如何在春天完成工作后销毁表格背衬对象?

时间:2014-02-14 20:09:19

标签: java session object spring-mvc redirect

我面临一个奇怪的问题,我有一个由对象支持的问题,现在的问题是,一旦特定的工作完成,该对象的值仍然存在。这是我的代码片段

1)Login.jsp

<form:form action="login" method="POST" modelAttribute="login">
        <table>
            <tr><td>User Id:</td><td><form:input path="userId"/></td><td><font color="red"><c:out value="${userIdError}" /></font> </td></tr>
            <tr><td>Password:</td><td><form:input path="userPassword"/></td><td><font color="red"><c:out value="${userPasswordError}" /></font></td></tr>
            <tr><td></td><td><input type="submit" value="Login"/></td></tr>
            <tr><td><a href="newUser">New User</a></td><td><a href="forgotPassword">Forgot Password</a></td></tr>
        </table>
    </form:form>

2)控制器

@RequestMapping(value="/login", method=RequestMethod.POST)
public String login(@ModelAttribute("login")@Valid Login login,BindingResult result, Model model,HttpServletRequest request)
{
      //performing some validations
     if(obj.getUserPassword().equals(login.getUserPassword()))
    {
        request.getSession().setAttribute("sessionValue", login.getUserId());
        return "home";
    }
@RequestMapping(value="/logout")
    public String logout(HttpServletRequest request)
    {
        System.out.println(request.getSession().getAttribute("sessionValue"));
        request.getSession().invalidate();
        return "redirect:index";

    }

3)Home.jsp

<body>
    Home Page for registered user sir
    <font color="red">
    <c:choose>
        <c:when test="${sessionValue==null }">
            <jsp:forward page="/index"/> 
        </c:when>
        <c:otherwise>
            we have the persisted value ${sessionValue }
        </c:otherwise>

现在问题是登录后我来Home.jsp,如果我点击logout,我会被重定向到Login.jsp。但是,如果点击浏览器上的后退按钮,我被重定向到Home.jsp页面,一切都很好,直到这里,但一旦我理想地刷新,我应该被重定向到Login.jsp,但我的应用程序再次进入控制器获取最后一个loginId和loginPassword我输入登录,设置会话。如何避免它。我希望我很清楚。

注意: - 如果我从其他某个页面退出登录

,则不会出现问题
Login->Home page->Some Other Page->Logout->Hit back button->Some Other Page->refresh->Login

只有在

时才会出现此问题
Login->Home page->Logout->Hit back button->Home Page->refresh->Remain on Home page and session maintained

0 个答案:

没有答案