java会话跟踪

时间:2011-10-25 17:12:17

标签: jsp

  

可能重复:
  Java page re-direct

我希望在第一次调用该页面时转到某个页面,然后在会话仍处于活动状态时一直转到另一个页面。我已经有了登录机制。我提出了另一个主题,并建议在会话层设置一个标志。我不确定如何实现这一点。

基本上,当他们按下按钮转到某个页面时,它会调用:

public int show(Action action) throws Exception {
    HttpServletRequest request = action.getRequest();
    action.setJspURI("objects/objects_guidlines.jsp");
    return FORWARD;
}

如果他们第一次来这里,这很好。我如何实施检查以确定是否第一次,然后发送到另一个页面?

2 个答案:

答案 0 :(得分:2)

HTTP是一种无状态协议,因此如果您想在请求之间维护状态(例如用户之前是否曾在此处),则需要使用cookie或会话等内容。

如果您想使用会话,可以从HttpServletRequest获取它并执行以下操作:

public int show(Action action) throws Exception{
    HttpServletRequest request = action.getRequest();
    if (request.getSession().getAttribute("has_visited_previously")!=true)
    {
        //User has not been here before so record that they are visiting.
        request.getSession().setAttribute("has_visited_previously", true);
        action.setJspURI("objects/objects_guidlines.jsp");
        return FORWARD;
    }
    else
    {
        //User has been here before.
        action.setJspURI("objects/user_has_visited_before.jsp");
        return FORWARD;
    }
}

答案 1 :(得分:-1)

您需要一个静态变量或一个单例类来检查它。

在servlet中,您可以声明一个静态变量来强制执行此检查,如果您没有访问权限,则可以使用单例。

答案还取决于您的架构。