zoukankan      html  css  js  c++  java
  • struts2域值操作

    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 }
  • 相关阅读:
    Linux下退出vi编辑模式
    Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 17 declared in library(开发日志28)
    Could not download bmob-sdk.arr(cn.bmob.android:bmob-sdk:3.7.8)(开发日志25)
    本周总结
    思考概念方式
    面试体系目录
    2020面试记录
    日志
    redis 实现分布式锁
    SpringMvc servlet 拦截器 过滤器关系和区别及执行顺序
  • 原文地址:https://www.cnblogs.com/guanghe/p/6058138.html
Copyright © 2011-2022 走看看