我使用Java,Struts2和Hibernate制作这个应用程序。
现在我要实现的是,每当我直接键入localhost:8080/TwitterClone/welcome.jsp
时,如果用户未登录,则应将其重定向到localhost:8080/TwitterClone/login.jsp
。实现此目的的最有效方法是什么?
答案 0 :(得分:1)
public class AuthenticationInterceptor implements Interceptor {
@Override
public void destroy() {
}
@Override
public void init() {
}
@Override
public String intercept(ActionInvocation actionInvocation)
throws Exception {
Map<String, Object> sessionAttributes = actionInvocation.getInvocationContext().getSession();
User user = (User) sessionAttributes.get("user");
if(user == null){
return Action.LOGIN;
}else{
Action action = (Action) actionInvocation.getAction();
if(action instanceof UserAware){
((UserAware) action).setUser(user);
}
return actionInvocation.invoke();
}
}
}
你可以实现拦截器。但是为此你需要在struts.xml文件中写入映射