struts拦截器的问题!!!
初学struts2 的拦截器 看了下Demo很多地方不理解!!
拦截器部分!!
public String intercept(ActionInvocation actionInvocation) throws Exception {
System.out.println("begin check login interceptor");
// ��LoginAction�������9��
Object action = actionInvocation.getAction();
if (action instanceof LoginAction) {
System.out
.println("exit check login, because this is login action.");
return actionInvocation.invoke();
}
// ��֤ session
Map session = actionInvocation.getInvocationContext().getSession();
String username = (String) session.get(USER_SESSION_KEY);
if (username != null) {
// ���ڵ�����½��к������
System.out.println(username+" already login!");
return actionInvocation.invoke();
} else {
// ������ֹ����������LOGIN
System.out.println("no login, forward login page!");
return Action.LOGIN;
}
}
不理解这个拦截器的意思! 谁能帮忙注释下 讲解下呢 它对应的Action是:
public class LoginAction extends ActionSupport implements SessionAware {
private static final long serialVersionUID = 1L;
private UserBean userBean;
private Map<String, String> session;
public UserBean getUserBean() {
return userBean;
}
public void setUserBean(UserBean userBean) {
this.userBean = userBean;
}
@Override
public String execute() {
if (userBean == null) {
return LOGIN;
}
String name = userBean.getName();
String pwd = userBean.getPassword();
session.put(CheckLoginInterceptor.USER_SESSION_KEY, name);
if (name.equals("java") && pwd.equals("struts")) {
return SUCCESS;
} else {
return ERROR;
}
}
public void setSession(Map session) {
this.session = session;
}