checklogininterceptor.java

来自「struts2 入门小例 用户登陆.」· Java 代码 · 共 55 行

JAVA
55
字号
/*************************************************
 @Copyright (C), 2008, lzpeng 
 @File name:      CheckLoginInterceptor.java
 @Author:         lzpeng
 @CreateDate:     2008-6-17 
 @Description:    CheckLoginInterceptor拦截器 
 @Extends:        AbstractInterceptor   
 
 @Function List: 
 1. public String intercept()
 *************************************************/

package cn.com.lzpeng.actions;

import java.util.Map;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class CheckLoginInterceptor extends AbstractInterceptor {

	private static final long serialVersionUID = 1L;
	public static final String USER_SESSION_KEY="user";  

	@Override
	public String intercept(ActionInvocation actionInvocation) throws Exception {
		System.out.println("begin check login interceptor");

		// 对LoginAction不做该项拦截
		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;

		}

	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?