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; } }
时间: 2024-10-27 10:51:08