1.完全解耦合的方式
   如果使用该种方式,Struts2框架中提供了一个类,ActionContext类,该类中提供一些方法,通过方法获取Servlet的API
   一些常用的方法如下
* static ActionContext getContext()                                         -- 获取ActionContext对象实例
* java.util.Map<java.lang.String,java.lang.Object> getParameters() -- 获取请求参数,相当于request.getParameterMap();
* java.util.Map<java.lang.String,java.lang.Object> getSession() -- 获取的代表session域的Map集合,就相当于操作session域。
* java.util.Map<java.lang.String,java.lang.Object> getApplication() -- 获取代表application域的Map集合
* void put(java.lang.String key, java.lang.Object value) -- 注意:向request域中存入值。
/**
* 完全解耦合的方式,使用Servlet的API
* @author Administrator
*/
public class Demo1Action extends ActionSupport{ private static final long serialVersionUID = -7255855724015241518L; public String execute() throws Exception {
// 完全接耦合的方式
ActionContext context = ActionContext.getContext();
// 获取到请求的参数,封装所有请求的参数
Map<String, Object> map = context.getParameters();
// 遍历获取数据
Set<String> keys = map.keySet();
for (String key : keys) {
// 通过key,来获取到值
String [] vals = (String[]) map.get(key);
System.out.println(key+" : "+Arrays.toString(vals));
} // 如果向request对象中存入值
context.put("msg", "小东东");
// 获取其他map集合
context.getSession().put("msg", "小苍");
context.getApplication().put("msg", "小泽"); return SUCCESS;
} }

2.使用原生Servlet的API的方式--简单方便

* Struts2框架提供了一个类,ServletActionContext,该类中提供了一些静态的方法
* 具体的方法如下
* getPageContext()
* getRequest()
* getResponse()
* getServletContext()
/**
* 原生的API
* @author Administrator
*
*/
public class Demo2Action extends ActionSupport{ private static final long serialVersionUID = -864657857993072618L; public String execute() throws Exception {
// 获取到request对象
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("msg", "小东东");
request.getSession().setAttribute("msg", "美美");
ServletActionContext.getServletContext().setAttribute("msg", "小凤"); HttpServletResponse response = ServletActionContext.getResponse();
// 使用输出流,输出内容 return SUCCESS;
}
}

最新文章

  1. Java三大框架之——Hibernate关联映射与级联操作
  2. [LeetCode] Integer Break 整数拆分
  3. MySQL常见错误及其解决办法
  4. 阿里云Center OS 6.2 Nginx 配置 SSL/TLS HTTPS配置
  5. 字符串hash - POJ 3461 Oulipo
  6. 纯css代码写旋转动画
  7. freemarke之TemplateDirectiveModel详解
  8. 【Python】0/1背包、动态规划
  9. 触动精灵远程Log模块
  10. ASP.NET MVC 使用带有短横线的html Attributes
  11. android脚步---自动完成文本框
  12. Java程序打开指定地址网页
  13. 阿里云Maven地址
  14. 2019-3-26WinForm窗体间如何传值的几种方法
  15. 抛异常 throw的注意事项
  16. 小程序WXSS布局
  17. 【刷题】LOJ 6122 「网络流 24 题」航空路线问题
  18. 关于Django的序列化
  19. Filter接口编写过滤器
  20. HDU 5690 All X 数学

热门文章

  1. ios兼容问题
  2. BUUCTF RE部分题目wp
  3. LLppdd never give up!
  4. node升级
  5. Dubbo面试常见问题
  6. Linux入门命令
  7. Git分布式版本控制系统(上)
  8. 转。Nas配置。想找原版没找到,全是转载的,也没注出处,无语。
  9. 使用truelicense实现用于JAVA工程license机制(包括license生成和验证)
  10. Codeforces 346C Number Transformation II 贪心(复杂度计算)