当前位置: 代码迷 >> Web前端 >> Webwork中获取session信息种的封装
  详细解决方案

Webwork中获取session信息种的封装

热度:116   发布时间:2012-08-21 13:00:22.0
Webwork中获取session信息类的封装

????? webwork开发过程中,获取session中的信息需要实现SessionAware,若session中使用pojo类存放用户信息,需要在Action类中进行处理才能获取用户信息。可以通过下面的方法,简化session信息的获取,并实现灵活的session信息组合。

?

/**
 * 存放用户session信息POJO类
 * @version 1.0
 */
public class UserInfo {
	private int webID;		// 帐号ID
	private int userID;		// 用户身份ID
	private String realName;	// 用户姓名
	private List permission;	// 权限列表
	public List getPermission() {
		return permission;
	}
	public void setPermission(List permission) {
		this.permission = permission;
	}
	public String getRealName() {
		return realName;
	}
	public void setRealName(String realName) {
		this.realName = realName;
	}
	public int getUserID() {
		return userID;
	}
	public void setUserID(int userID) {
		this.userID = userID;
	}
	public int getWebID() {
		return webID;
	}
	public void setWebID(int webID) {
		this.webID = webID;
	}
}
/**
 * 登录校验成功后,封装用户信息
 * @version 1.0
 */
public class LoginSubAction extends ActionSupport implements SessionAware{
	private Map session;
	//忽略其他元素
	
	public String execute() throws Exception{
		UserInfo userInfo = new UserInfo();
		/*
		 * 忽略userInfo信息填充
		 */
		
		session.clear();
		session.put("userInfo", userInfo);
		return SUCCESS;
	}
	public void setSession(Map session) {
		this.session = session;
	}
	//忽略其他get、set方法
}?
**
 * 获取session信息,根据业务需要进行组合
 * @version 1.0
 */
public class BasicAction extends ActionSupport implements SessionAware{

	private Map session;
	protected UserInfo userInfo;
	protected int webID = -1;
	protected int userID = -1;
	protected String realName = null;
	protected List permission = new ArrayList();
	
	// 获取session中用户登录信息
	public void getUserInfo(){
		if(session!=null || session.get("userInfo")!=null){
			this.userInfo = (UserInfo)session.get("userInfo");
		}
	}
	
	// 获取公共信息
	public void getCommonInfo(){
		getUserInfo();
		if(userInfo != null){
			webID = userInfo.getWebID();
			userID = userInfo.getUserID();
			realName = userInfo.getRealName();
			permission = userInfo.getPermission();
		}
	}

	// 获取webID
	public void getWebID(){
		getUserInfo();
		if(userInfo != null){
			webID = userInfo.getWebID();
		}
	}
	
	// 获取userID
	public void getUserID(){
		getUserInfo();
		if(userInfo != null){
			userID = userInfo.getUserID();
		}
	}
	
	// 获取realName
	public void getRealName(){
		getUserInfo();
		if(userInfo != null){
			realName = userInfo.getRealName();
		}
	}
	
	// 获取权限
	public void getPermission(){
		getUserInfo();
		if(userInfo != null){
			permission = userInfo.getPermission();
		}
	}
	
	/*
	 * 其他组合,根据业务需要进行
	 */
	
	
	public void setSession(Map session) {
		this.session = session;
	}

}

?

只需要继承session信息获取类即可使用session信息

/**
 * 业务逻辑类,根据需要获取session中用户信息
 * @version 1.0
 */
public class BusinessLogicAction extends BasicAction{
	
	private String information;
	
	public String execute() throws Exception{
		// 获取全部用户信息,可根据业务需要获取
		getCommonInfo();
		
		information = realName+webID+userID+permission;
		
		return SUCCESS;
	}
	
	public String getInformation() {
		return information;
	}
	public void setInformation(String information) {
		this.information = information;
	}
}

?

  相关解决方案