`

BaseAction的缓冲封装

 
阅读更多

在baseAction中对数据进行get和set方法,然后在一个拦截器中,将有效数据进行封转。封转到数据sessionUserVO里面,在拦截器里面吧数据进行封转然后放入缓冲中,供action调用。这种方法减少里数据的调用的次数,action寻找有效的参数更加方便。

 

public String returnCode="";
 /** 返回信息 */
 public String returnMsg="";
 /** 用户ID **/
 public long userId=0;
 /** 用户名 */
 public String userName="";
 /** 用户token **/
 public String userToken="";
 /** 用户VO*/
 public SessionUserVO sessionUserVO;

 

get和set方法

 

在拦截器里面进行数据的封装

public String intercept(ActionInvocation invocation) throws Exception {
  
  Action action = (Action) invocation.getAction();
  if (action instanceof BaseAction) {
   BaseAction baseAction = (BaseAction) action;
   long userId=  baseAction.getUserId();
   String userToken = baseAction.getUserToken();
   if (userId == 0 || userToken == null || userToken.equals("")) {
    return AuthorConstant.INVALID_LOGIN;
   }
   SessionUserVO sessionUser = (SessionUserVO) MemcacheUtil.getSessionObject(String.valueOf(userId));
   if (sessionUser != null && !sessionUser.getUserToken().equals(userToken)) {
    return AuthorConstant.INVALID_LOGIN;
   }
   if (sessionUser == null) {
    User user = userDao.getUser(userId,userToken);
    if (user == null) {
     return AuthorConstant.INVALID_LOGIN;
    }
    sessionUser = new SessionUserVO();
    sessionUser.setUserId(user.getUserId());
    sessionUser.setUserName(user.getUserName());
    sessionUser.setUserToken(user.getUserToken());
    sessionUser.setLoginTime(user.getLoginTim());
    sessionUser.setOnlineTime(user.getOnlineTime());
    sessionUser.setTotalInfullNum(user.getTotalInfullNum());
    SessionUtil.setMemcachedUser(sessionUser);
   }
   baseAction.setUserName(sessionUser.getUserName());
   baseAction.setSessionUserVO(sessionUser);
  }
  return invocation.invoke();

 

 

 

 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    BaseAction

    BaseAction.java

    BaseAction的小测试代码

    本测试代码主要关注`BaseAction`,一个常见的Action基类,它为其他具体的业务Action提供了一些基础功能和通用逻辑。`BaseAction`通常会包含错误处理、日志记录、请求参数验证等常见操作,以此提高代码的可重用性和可...

    utils类及baseAction

    总的来说,`Utils` 类是提供通用功能的静态方法集合,而 `BaseAction` 是控制器层的基础类,封装了Web应用中的常见操作。两者都是为了提高代码的复用性和可维护性,降低开发复杂度。在实际项目中,根据具体需求,...

    抽取的BaseAction通用工具类

    很好用的工具类,希望帮助到大家

    BaseAction.rar_Java编程_Java_

    `BaseAction`作为所有具体Action类的超类,可以封装共有的方法,如日志记录、权限验证、数据校验等,减少代码重复,提高代码复用性。 1. **继承与多态**:`BaseAction`作为超类,其他类通过继承它来获得其特性,这...

    原创技术:史上最灵活,强大的分页框架

    本篇将深入探讨一个被誉为“史上最灵活、强大”的分页框架,结合提供的`BaseAction.java`源码,我们将分析其设计思路和技术要点。 首先,强大的分页框架应具备以下几个核心特性: 1. **灵活性**:框架需要适应不同...

    天下陶网络商城.zip

    3. **业务逻辑层**:例如`ProductAction.class`、`OrderAction.class`和`BaseAction.class`,这些类可能代表了产品管理和订单处理的业务逻辑。`BaseAction.class`可能是所有Action类的基类,提供了通用的方法和功能...

    <<项目架构那点儿事>>——浅析web层struts2的构建

    首先,我们来看`BaseAction.java`,这是一个基础Action类,通常包含了一些公共方法和属性,如登录验证、权限控制等。开发者可以继承这个基类,减少代码重复,提高代码复用性。BaseAction中的方法会处理来自用户请求...

    初学JAVA-WEB开发的小项目

    在web层和dao层都提取了公共代码封装到BaseAction和BaseDao中,提高了代码的复用,同时按照OO设计原则,针对接口编程,而不是针对实现编程。 使用拦截器的方法对系统权限进行初步控制(后续可以采用Shiro框架进行...

    一套适合初学者的JAVA-WEB开发的小项目

    在web层和dao层都提取了公共代码封装到BaseAction和BaseDao中,提高了代码的复用性,同时遵循OO设计原则,接口是针对编程的,而不是针对实现编程的。 使用拦截器的方法对系统权限进行初步控制(后续可以采用Shiro...

    路由:提供将路由段绑定到特定Extbase Action端点的功能

    TYPO3扩展routes 此扩展使您可以将URL终结点与某些Extbase Action绑定。 简而言之,您可以为TYPO3项目创建一个API。 特征: ... 开箱即用。 您的路线的其他中间件。... 用于一般信息的简单模块。...

    Java实现真分页.自己领悟.

    开发者可以通过简单的标签语法在页面上插入分页组件,而复杂的逻辑则封装在后台Java代码中。例如,`&lt;pagetag:pagination&gt;`标签可能包含如`pageNo`、`pageSize`、`totalPages`等属性,用于传递当前页数、每页大小和总...

    java javascript

    Service层是业务逻辑的核心,它封装了与DAO层的交互。Service层通常会继承BaseService,BaseService提供了一些通用的方法,而特定的业务逻辑则在对应的Service中实现。Service实现类需要通过@Autowired注解注入相应...

    ssh:struts-2.5+spring4+hibernate5

    简单的ssh项目,泛型BaseAction配置,简单注解配置,applicationContext.xml配置,jar包地址 链接:https://pan.baidu.com/s/14NkywuhG6mESyhE1VMkhOQ 密码:en19

    教务管理系统概要设计及详细设计.doc

    业务逻辑层是通过 Spring 框架实现的,首先建立一个 BaseAction,它继承了 Action 类,而其他定义的 Action 都要继承这个 BaseAction。这个 BaseAction 需要导入 AppContext 工具类,通过 Spring 中的 org.spring...

    framework开发手册.doc

    * Web(action):com.otc.framework.web.struts.actions.BaseAction * Business logic(service):com.otc.framework.service.impl.BaseManager * DAO:com.otc.framework.dao.hibernate.BaseDAO * Hibernate Model...

Global site tag (gtag.js) - Google Analytics