1.通过servletActionContext类

 /***
* 获得方式一:通过ServletActionContext类
* 提供的静态方法获得原始的web对象,直接和servlet的API耦合
* 如果需要获得原始的web对象,只能选择ServletActionContext类
* **/
public String method01()
{
//获得HttpServletRequest对象
HttpServletRequest request= ServletActionContext.getRequest();
//获得HttpServletResponse对象
HttpServletResponse response=ServletActionContext.getResponse();
//获得HttpSession对象
HttpSession session=request.getSession();
//获得Application对象
ServletContext application=ServletActionContext.getServletContext();
//给web对象中封装数据
request.setAttribute("req", "method01----req");
session.setAttribute("sin", "method01----sin");
application.setAttribute("app", "method01----app");
return Action.SUCCESS;
}

2.通过ActionContext获得

ServletActionContext extends ActionContext

 /**
* 方式二:
* struts2框架将web对象封装到Map集合中。
* ActionContext将获得web对象全部转化为Map,不需要依赖web容器,
* 完成和servlet的api解耦合
*
* ***/
public String method02()
{
//相当于request对象
ActionContext ac=ActionContext.getContext();
Map<String,Object> session=ac.getSession(); //相当于sessoin对象
Map<String,Object> application=ac.getApplication();//相当于application
ac.put("req", "method02---req");
session.put("sin", "method02----sin");
application.put("app", "method02----app");
return Action.SUCCESS;
}

3. 通过struts2框架注入web对象

3.1定义BaseAction

 /****需要实现特定的接口****/
public class BaseAction implements RequestAware,SessionAware,ApplicationAware
{
protected Map<String,Object> request;
protected Map<String,Object> session;
protected Map<String,Object> application;
@Override
public void setRequest(Map<String, Object> request)
{
System.out.println("setRequest------"+request);
this.request=request;
}
@Override
public void setSession(Map<String, Object> session)
{
System.out.println("setSession------"+session);
this.session=session;
}
@Override
public void setApplication(Map<String, Object> application)
{
//System.out.println("setApplication------"+application);
this.application=application;
}
}

3.2web对象的获得

 /***
* 方式三:通过struts2框架完成web对象的注入
* 需要实现特定的接口,而重写的接口的方法,由struts2框架自己调用,
* 只需要定义相应Map变量,接收setXxx的形参
* 完成了和servletAPI的解耦合
* 同时完了对象的获取和对象的使用之间的解耦合
* IOC注入方式获得web对象(程序员只需要定义变量接收值,由struts2框架完成赋值)
* ***/
public String method03()
{
request.put("req", "method03----req");
session.put("sin", "method03----sin");
application.put("app", "method03----app");
return Action.SUCCESS;
}

struts2域值操作的更多相关文章

  1. struts2(二)值栈 threadlocal ogal ui

    值栈(重要)和ognl表达式 1.  只要是一个mvc框架,必须解决数据的存和取的问题 2.  Struts2利用值栈来存数据,所以值栈是一个存储数据的内存结构 3.  把数据存在值栈中,在页面上利用 ...

  2. jquery 文本域光标操作(选、添、删、取)

    一.JQuery扩展 ; (function ($) { /* * 文本域光标操作(选.添.删.取)的jQuery扩展 http://www.cnblogs.com/phpyangbo/p/55286 ...

  3. 在Word2010文档中显示域代码而非域值

    当Word2010文档中含有域内容时,默认情况下显示域值,这样可以使插入的域内容清晰明了.用户可以根据需要选择显示域代码或显示域值,操作步骤如下所述: 步骤/方法 第1步,打开Word2010文档窗口 ...

  4. 文本域光标操作(选、添、删、取)的jQuery扩展

    ; (function ($) { /* * 文本域光标操作(选.添.删.取)的jQuery扩展 @Mr.Think http://mrthink.net/text-field-jquery-exte ...

  5. C# 关于AD域的操作 (首博)

    前段时间(因为懒得找具体的时间了)公司说让系统可以进行对AD域的操作,包括创建用户.于是上网查资料,了解何为AD域.还不知道的这边请https://www.cnblogs.com/cnjavahome ...

  6. 6、前端--DOM操作(查找标签、节点操作、获取值操作、class操作、样式操作、绑定事件、内置参数this)

    DOM操作之查找标签 前缀关键字>>>:document # 基本查找(核心) document.getElementById 根据ID获取一个标签 document.getElem ...

  7. jQuery动态对表格Table进行添加或删除行以及修改列值操作

    jQuery,不仅可以以少量的代码做很多操作,而且兼容性好(各种浏览器,各种版本). 下面用jQuery动态对表格Table进行添加或删除行以及修改列值操作 1.jQuery代码 <script ...

  8. struts2更新版本操作有关事项备注

    struts2更新版本操作有关事项备注, 更新主要jar包:struts2-convention-plugin-version,struts2-core-version, struts2-spring ...

  9. redis键值操作

    1.1. redis键值操作 1.1.1. keys patten 查询相应的key 可以精确的查,也可以模糊的查 1.1.1.1. 通配符:* ? [] 在redis里,模糊查询key的时候有3个通 ...

随机推荐

  1. HDU 2010

    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int Is_SXH(int num); int main() { int in1, ...

  2. 解决升级WordPress及插件需输入FTP账号的问题

    当添加,删除,升级 WordPress 插件或者直接升级 WordPress 的时候,WordPress 总是提示让你输入 FTP 帐号信息,非些烦人. 我们可以在 wp-config.php 中定义 ...

  3. 【bzoj1864】[ZJOI2006]三色二叉树

    题目描述 输入 仅有一行,不超过500000个字符,表示一个二叉树序列. 输出 输出文件也只有一行,包含两个数,依次表示最多和最少有多少个点能够被染成绿色. 样例输入 1122002010 样例输出 ...

  4. CSU 1503 点到圆弧的距离(2014湖南省程序设计竞赛A题)

    题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1503 解题报告:分两种情况就可以了,第一种是那个点跟圆心的连线在那段扇形的圆弧范围内,这 ...

  5. HNU 12888 Encryption(map容器)

    题目链接:http://acm.hnu.cn/online/?action=problem&type=show&id=12890&courseid=274 解题报告:输入一个有 ...

  6. BZOJ2171——K凹凸序列

    好吧,我承认是sb题QAQ BZOJ2171弱化版QAQ 这题考试的时候写的我快吐血了QAQ 0.题目大意:给一个序列,你可以随便修改,修改是将一个数+1或-1,一次修改的代价是1,问把这个数修改成x ...

  7. iOS/Android/Web Url Encode空格處理 原文連結:http://read01.com/3gDO.html

    iOS/Android/Web Url Encode空格處理 原文連結:http://read01.com/3gDO.html 前言 這裡只是講一個故事,一個發生在我身上的真實的故事.曾經,我以為搞加 ...

  8. OpenCV进阶之路:一个简化的视频摘要程序

    一.前言 视频摘要又称视频浓缩,是对视频内容的一个简单概括,先通过运动目标分析,提取运动目标,然后对各个目标的运动轨迹进行分析,将不同的目标拼接到一个共同的背景场景中,并将它们以某种方式进行组合.视频 ...

  9. maven项目部分知识

    1.maven项目在pom.xml中用add dependencies加入jar包,搜索不到jar包的解决方案: Window  --> Show View --> Other输入mave ...

  10. 21 BasicTaskScheduler基本任务调度器(一)——Live555源码阅读(一)任务调度相关类

    21_BasicTaskScheduler基本任务调度器(一)——Live555源码阅读(一)任务调度相关类 BasicTaskScheduler基本任务调度器 BasicTaskScheduler基 ...