可能重复:
Java page re-direct
我希望在第一次调用该页面时转到某个页面,然后在会话仍处于活动状态时一直转到另一个页面。我已经有了登录机制。我提出了另一个主题,并建议在会话层设置一个标志。我不确定如何实现这一点。
基本上,当他们按下按钮转到某个页面时,它会调用:
public int show(Action action) throws Exception {
HttpServletRequest request = action.getRequest();
action.setJspURI("objects/objects_guidlines.jsp");
return FORWARD;
}
如果他们第一次来这里,这很好。我如何实施检查以确定是否第一次,然后发送到另一个页面?
答案 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中,您可以声明一个静态变量来强制执行此检查,如果您没有访问权限,则可以使用单例。
答案还取决于您的架构。