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