zoukankan      html  css  js  c++  java
  • Struts2获取Session的三种方式

    1、Map<String,Object> session =  ActionContext.getContext().getSession();

      session.put("codeTextFromSys", checkCode.getCodeText());

      String codeTextFromSys = session.get("codeTextFromSys");

    2、HttpSession session = ServletActionContext.getRequest().getSession();

      session.setAttribute("codeTextFromSys", checkCode.getCodeText());

      String codeTextFromSys = (String)session.getAttribute("codeTextFromSys");

    3、让Action实现SessionAware接口,并实现public void setSession(Map<String, Object> session) {} 方法,Struts2会在实例化Action后调用该方法,通过方法参数将Session对象注入进来。如果我们想获取Session,我们可以定义成员变量,接收注入进来的Session对象。(推荐)

      public class PictureCheckCode extends ActionSupport implements SessionAware {

    private Map<String, Object> session;

    public Map<String, Object> getSession() {
    return session;
    }

    public void setSession(Map<String, Object> session) {
    this.session = session;
    }

    }


    三种方式的比较:

      返回类型的对比:

          1,3获取的Session类型是Map<String,Object>类型,2获取的类型是HttpSession。

      获取方式对比:

          1,2是我们主动获取Session,3是采用注入的方式自动注入Session,这是被动的。

          推荐使用3来创建Session,因为它更为灵活而且符合面向接口编程的思想。

    补充:jsp页面获取Session的值

         在jsp上内置就有session对象,可以直接用。

         例如:<%=session.getAttribute("hello") %>

  • 相关阅读:
    [日常工作] cmd以及bash 直接使用当前目录的方法
    [安全] 公司局域网病毒处理
    SQLserver 使用网络驱动器恢复数据库
    MiniDP与HDMI的关系
    Win10删除微软拼音输入法的方法
    SQLSERVER case when 的学习
    [日常工作]偷懒创建一个存储过程进行模拟工作.
    oracle 18c centos7 设置开机自动启动Oracle
    kali linux升级
    [日常工作]Oracle新增数据文件的小知识点
  • 原文地址:https://www.cnblogs.com/haimishasha/p/6195468.html
Copyright © 2011-2022 走看看