1.通过servletActionContext类
1 /*** 2 * 获得方式一:通过ServletActionContext类 3 * 提供的静态方法获得原始的web对象,直接和servlet的API耦合 4 * 如果需要获得原始的web对象,只能选择ServletActionContext类 5 * **/ 6 public String method01() 7 { 8 //获得HttpServletRequest对象 9 HttpServletRequest request= ServletActionContext.getRequest(); 10 //获得HttpServletResponse对象 11 HttpServletResponse response=ServletActionContext.getResponse(); 12 //获得HttpSession对象 13 HttpSession session=request.getSession(); 14 //获得Application对象 15 ServletContext application=ServletActionContext.getServletContext(); 16 //给web对象中封装数据 17 request.setAttribute("req", "method01----req"); 18 session.setAttribute("sin", "method01----sin"); 19 application.setAttribute("app", "method01----app"); 20 return Action.SUCCESS; 21 }
2.通过ActionContext获得
ServletActionContext extends ActionContext
1 /** 2 * 方式二: 3 * struts2框架将web对象封装到Map集合中。 4 * ActionContext将获得web对象全部转化为Map,不需要依赖web容器, 5 * 完成和servlet的api解耦合 6 * 7 * ***/ 8 public String method02() 9 { 10 //相当于request对象 11 ActionContext ac=ActionContext.getContext(); 12 Map<String,Object> session=ac.getSession(); //相当于sessoin对象 13 Map<String,Object> application=ac.getApplication();//相当于application 14 ac.put("req", "method02---req"); 15 session.put("sin", "method02----sin"); 16 application.put("app", "method02----app"); 17 return Action.SUCCESS; 18 }
3. 通过struts2框架注入web对象
3.1定义BaseAction
1 /****需要实现特定的接口****/ 2 public class BaseAction implements RequestAware,SessionAware,ApplicationAware 3 { 4 protected Map<String,Object> request; 5 protected Map<String,Object> session; 6 protected Map<String,Object> application; 7 @Override 8 public void setRequest(Map<String, Object> request) 9 { 10 System.out.println("setRequest------"+request); 11 this.request=request; 12 } 13 @Override 14 public void setSession(Map<String, Object> session) 15 { 16 System.out.println("setSession------"+session); 17 this.session=session; 18 } 19 @Override 20 public void setApplication(Map<String, Object> application) 21 { 22 //System.out.println("setApplication------"+application); 23 this.application=application; 24 } 25 }
3.2web对象的获得
1 /*** 2 * 方式三:通过struts2框架完成web对象的注入 3 * 需要实现特定的接口,而重写的接口的方法,由struts2框架自己调用, 4 * 只需要定义相应Map变量,接收setXxx的形参 5 * 完成了和servletAPI的解耦合 6 * 同时完了对象的获取和对象的使用之间的解耦合 7 * IOC注入方式获得web对象(程序员只需要定义变量接收值,由struts2框架完成赋值) 8 * ***/ 9 public String method03() 10 { 11 request.put("req", "method03----req"); 12 session.put("sin", "method03----sin"); 13 application.put("app", "method03----app"); 14 return Action.SUCCESS; 15 }
时间: 2024-11-10 13:20:01