zoukankan      html  css  js  c++  java
  • Struts2中使用Session的两种方法

    在Struts2里,如果需要在Action中使用到session,可以使用下面两种方式:
    1. 通过ActionContext 类中的方法getSession得到
    2. Action实现org.apache.struts2.interceptor.SessionAware接口的方式来对session进行操作
     
    下面先看一个采用第一种方式,在action中得到session的例子
    public class SessionTestAction extends ActionSupport {
        public String execute() {
           ActionContext actionContext = ActionContext.getContext();
           Map session = actionContext.getSession();
           session.put("user", "Test User");
           return SUCCESS;
        }
    }
    在这个例子中,通过ActionContext得到session,并往session里放置一个key为user,值为Test User的内容。
     
    下面是一个实现org.apache.struts2.interceptor.SessionAware接口来对session操作的例子
    public class SessionTest1Action extends ActionSupport implements SessionAware {
        private Map session;
        public void setSession(Map session) {
           this.session = session;
        }
        public String execute() {
           this.session.put("user", "Test User 1");
           return SUCCESS;
        }
    }
    在这个例子中实现了接口SessionAware中的setSession方法。
     
    上面两种方式都可以得到session,能实现的功能都一样。推荐通过第二种方式来使用session,便于单体测试,用第二种方式,只需要构造一个Map就可以对action进行单体测试了。
     
    注销session的方法:
    // 注销
    public String logout() throws Exception {
      ((org.apache.struts2.dispatcher.SessionMap<String, Object>) this.session).invalidate();
      return SUCCESS;
    }
  • 相关阅读:
    C语言inline函数(转)
    C++ 输入ctrl+z 不能再使用cin的问题
    VMware无法识别USB设备
    python manage.py 命令
    求二叉树的最小深度
    Vim的分屏功能(转)
    一些Python的惯用法和小技巧:Pythonic
    Docker(十五)-Docker的数据管理(volume/bind mount/tmpfs)
    Docker(十四)-Docker四种网络模式
    Docker(十三)-Docker save and load镜像保存
  • 原文地址:https://www.cnblogs.com/archermeng/p/7537476.html
Copyright © 2011-2022 走看看