`
winnie825
  • 浏览: 120446 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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;
	}
}

 

分享到:
评论

相关推荐

    详解Webwork中Action 调用的方法

    本文将深入探讨Webwork中Action调用的方法,主要包括三个方面:框架类关系、Web参数的获取与包装以及ActionProxy的创建与执行。 首先,让我们来看看Webwork框架中的类关系。Webwork的核心在于其Action机制,Action...

    WebWork教程开发资料

    ActionContext是WebWork中传递请求参数、session状态和其他上下文信息的关键对象。它封装了请求和响应对象,为Action提供了一种访问当前请求环境的统一方式。 **ServletActionContext** ServletActionContext是...

    webwork的api

    它封装了HttpServletRequest和HttpServletResponse,提供了获取和设置请求参数、session属性等操作的方法。 3. **DispatcherServlet**:在WebWork中,DispatcherServlet负责接收HTTP请求,并根据配置的ActionMapper...

    webwork学习资料

    ActionContext是WebWork中的一个关键组件,它提供了访问当前请求的上下文信息,如请求参数、session和application范围的对象。ActionContext使得Action可以获取和设置这些信息,进行数据传递。 7. **...

    webworkDemo.rar_webwork_webwork2

    5. **Request/Session/ApplicationContext**:WebWork2提供了对请求、会话和应用上下文的封装,方便在Action之间共享数据。 6. **视图渲染**:视图通常是JSP页面,通过OGNL表达式从值栈中获取数据并显示。WebWork2...

    webwork的使用教程

    它封装了当前请求的所有相关信息,如session、request、response对象以及值栈等。ActionContext允许你在Action之间共享数据,也可以通过它访问Servlet容器的相关服务。 **ServletActionContext** ...

    webwork教程(经典)

    ActionContext是WebWork中存储请求上下文信息的容器,它包含了请求参数、Session数据、Application级变量等。ActionContext使得在Action和视图之间传递数据变得方便。 **ServletActionContext**: ...

    WebWork教程.pdf

    这个Action类实现了Action接口,并且定义了一个名为execute的方法,这个方法在WebWork框架中会被调用以处理用户的请求。这个类包括一个字符串成员变量,该变量通过OGNL表达式被访问。 ### 其他技术点 1. **HTTP和...

    WebWork教程(初学者的学习)

    ActionContext是WebWork中的一个重要组件,它封装了当前请求的环境信息,如Session、Request、Response对象以及本地化信息。ActionContext提供了访问和设置这些上下文数据的方法。 - **ServletActionContext**:在...

    WebWork教程-0.90版

    1. **定义Action**:Action是WebWork中的核心组件,用于封装具体的业务逻辑。在WebWork中,Action通常继承自com.opensymphony.xwork2.Action接口,或其子接口。通过实现execute()方法,可以指定Action的执行逻辑。 ...

    WebWork标签库

    UI标签是WebWork中最常用的标签之一,它们封装了HTML控件,使页面开发更加简单和一致。 - **`<ww:form/>`**:表单标签。提供了一个标准的表单框架,可以方便地添加各种表单控件。 - **`<ww:textfield/>`**:文本...

    webwork学习笔记(全)

    ServletDispatcher 是WebWork中的核心组件之一,它负责根据Action配置信息来分发请求,调用相应的Action方法,并将结果返回给客户端。它解析请求路径,查找匹配的Action映射,执行Action并根据返回的结果类型选择...

    WebWork+Spring.+Hibernate整合开发网络书城代码

    3. **DAO层**:使用Hibernate进行数据访问,封装了对数据库的CRUD操作,通过SessionFactory和Session对象与数据库交互。 4. **Model层**:定义了Java对象模型,如Book、User等实体类,与数据库表结构对应。 5. **...

    WebWork教程

    在WebWork中,模型通常是一个Java对象,与数据库或其他服务进行交互。 2. 视图(View):视图负责呈现数据,通常是HTML页面,JSP或FreeMarker模板。WebWork允许开发者通过简单的标签来绑定模型数据,实现动态页面...

    webwork+hibernate+spring的例子

    【标题】"webwork+hibernate+spring的例子"展示了如何在实际项目中整合这三大框架,即WebWork、Hibernate和Spring。这三个框架是Java Web开发中的重要组件,它们各自承担着不同的职责,共同构建了一个功能强大的应用...

    WebWork + Spring + Hibernate 快速上手教程 千万不要错过哦

    WebWork、Spring 和 Hibernate 是Java开发领域中三个非常重要的开源框架,它们分别专注于Web应用程序的交互层、业务层和服务层。本教程将帮助你快速掌握这三大框架的整合使用,从而构建一个完整的Java企业级应用。 ...

    基于SSH框架的员工信息操作实现案例

    5. **服务层接口和实现**:定义EmployeeService接口,包含对DAO操作的封装,如获取所有员工、删除指定员工、更新员工信息等,然后实现该接口。 6. **控制层**:创建Struts2的Action类,比如EmployeeAction,这里将...

Global site tag (gtag.js) - Google Analytics