`

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,DispatchAction,XXXAction的一个小测试工程,希望对刚接触BaseAction的人有用

    抽取的BaseAction通用工具类

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

    utils类及baseAction

    utils类及baseAction 非常详细哦

    BaseAction.rar_Java编程_Java_

    action的超类 其他类的继承它,里面有详细说明

    web资源 完本

    包含WEB开发的Servlet,Struts2等开发所需的构架文件,底层的BaseAction,JDBC等底层封装

    初学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。 特征: ... 开箱即用。 您的路线的其他中间件。... 用于一般信息的简单模块。...

    ssh:struts-2.5+spring4+hibernate5

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

    PHP 登录完成后如何跳转上一访问页面

    具体实现 我现在的程序是基于ThinkPHP框架的,我们会有一个父类控制器,下面我就把这个设置cookie的代码加到这个BaseAction里面的_initialize()函数中,这样程序就大大简化工作量了。 复制代码 代码如下:$refer = ...

    struts1.2,spring2,hibernate3整合实例代码

    代码清晰,分层清楚,jstl页面多层循环,BaseAction整合业务层。myeclipse开发,包含包图片,没有具体包。注意解决包冲突。

    jQuery EasyUI与Struts2的整合—属性驱动篇

    jQuery EasyUI与Struts2 的整合—属性驱动篇 如果你是用模型驱动,或者是直接把属性写在action里面,你不会...BaseAction.java ApproveAction.java approveList.jsp jQuery EasyUI与Struts2 的整合—属性驱动篇.docx

    基于JAVA SMART系统-系统框架设计与开发(源代码+论文).zip

    因此,在对本系统进行架构设计的时候,考虑建立一个抽象的BaseAction类,该类继承LookupDispatchAction,实现LookupDispatchAction类中的getKeyMethodMap方法,在方法中返回本系统中请求参数值与资源文件中参数值的...

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

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

    maven整合ssh案例

    ************************************************************************************* ...运行成功后输入 http://localhost:8080/MySSH1.0/baseAction!tologin.action 如果数据库中插入数据表明整合成功!

    java javascript

    Service继承了baseSevice,baseSevice已经声明了一些基本方法,需要自己定制的方法在service中声明,然后在...BaseService需要一个Dao对实体进行操作,如果要使用BaseAction中的方法,需要把Dao注入到BaseService中。

    使用模型驱动方便从表单获取用户输入的值

    public class SupplierSort_Action extends BaseAction implements ModelDriven<SupplierSort>{ //调用数据访问层 SupplierSort supplierSort = new SupplierSort(); public SupplierSort getModel(){ return ...

    SSH框架整合

    struts2、hibernate3、...2:通过基础类和接口BaseDao、BaseDaoImpl、BaseAction类降低代码重用 3:单元测试通过(测试时新建一个名为oa的空数据库,密码自己改) 4:主要是依照传智播客的汤阳光老师讲的OA项目编写的

Global site tag (gtag.js) - Google Analytics