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") %>
Struts2获取Session的三种方式的更多相关文章
- 【Struts2】Struts2获取session的三种方式
		1.Map<String,Object> map = ActionContext.getContext().getSession(); 2.HttpSession session = S ... 
- 【深入Struts2】获取ServletAPI的三种方式
		一:获取servletAPI的三种方法 在传统的Web开发中,经常会用到Servlet API中的HttpServletRequest.HttpSession和ServletContext.Strut ... 
- Struts2(四.注册时检查用户名是否存在及Action获取数据的三种方式)
		一.功能 1.用户注册页面 <%@ page language="java" contentType="text/html; charset=UTF-8" ... 
- java:struts框架2(方法的动态和静态调用,获取Servlet API三种方式(推荐IOC(控制反转)),拦截器,静态代理和动态代理(Spring AOP))
		1.方法的静态和动态调用: struts.xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCT ... 
- 获取Type的三种方式
		using System;using UnityEngine; public class Type_Test : MonoBehaviour{ private void Awake() { ... 
- java 获取时间戳的三种方式
		java 获取时间戳的三种方式 CreationTime--2018年7月13日16点29分 Author:Marydon 1.实现方式 方式一:推荐使用 System.currentTimeMi ... 
- js获取时间戳的三种方式
		js获取时间戳的三种方式 CreateTime--2018年5月23日08:44:10 Author:Marydon // 方式一:推荐使用 var timestamp=new Date().ge ... 
- Struts2方法调用的三种方式
		在Struts2中方法调用概括起来主要有三种形式 第一种方式:指定method属性 <action name="student" class="com.itmyho ... 
- Struts2方法调用的三种方式(有新的!调用方法的说明)
		在Struts2中方法调用概括起来主要有三种形式 第一种方式:指定method属性 <action name="heroAction" class="com.ABC ... 
随机推荐
- nvm 装 nodejs 重启终端失效的解决方法
			(1) 安装 nvm wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.30.1/install.sh | bash (2) ... 
- [js高手之路] 我的开源javascript框架gdom - 选择器用法
			gdom框架是我开发的一款dom和字符串处理框架,目前版本是1.0.0. 使用方法跟jquery是差不多的, 会用jquery就会用gdom,目前 1.0.0版本的选择器完全支持CSS3选择器.没有做 ... 
- ts中interface与class的区别
			interface -- 接口只声明成员方法,不做实现. class -- 类声明并实现方法. 那么接口有什么用呢?设想如下需求: 要实现一个print函数,它将传入的对象打印出来.在实际实现上,它将 ... 
- linux中搭建solr集群出现org.apache.catalina.LifecycleException: Failed to initialize component ,解决办法
			07-Jan-2018 20:19:21.489 严重 [main] org.apache.catalina.core.StandardService.initInternal Failed to i ... 
- Wing IDE设置(自动补全&注释快捷键)
			自动补全(默认使用Tab键自动补全) 修改方法:edit -> preferences -> Editor -> Auto-completion 把右边keys的地方,从tab改成 ... 
- MySQL数据库操作
			一创建数据库 1 语法(help create database) CREATE DATABASE 数据库名 charset utf8; 2 数据库命名规则: 可以由字母.数字.下划线.@.#.$ 区 ... 
- python1数据链接总结
			本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ... 
- EF Core 使用编译查询提高性能
			今天,我将向您展示这些EF Core中一个很酷的功能,通过使用显式编译的查询,提高查询性能. 不过在介绍具体内容之前,需要说明一点,EF Core已经对表达式的编译使用了缓存:当您的代码需要重用以前执 ... 
- 14.7.1.2 MySQL创建用户句法
			14.7.1.2 CREATE USER Syntax 单击此处查看原文 以下是MySQL 5.7.6及以上版本的CREATE USER句法 CREATE USER [IF NOT EXISTS] u ... 
- [转]正则匹配时对象必须为string or bytes-like object
			逛segmentfault时碰到这个问题,发现早就在stackoverflow上被解决了. 报错:Expected string or bytes-like object 只需将传递的对象转成字符串就 ... 
