zoukankan      html  css  js  c++  java
  • 5.Struts2框架中的ServletAPI如何获取

    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;
        }
    }
  • 相关阅读:
    go语言基础之闭包捕获外部变量特点
    go语言基础之基匿名函数本语法和闭包
    go语言基础之回调函数
    go语言基础之函数类型
    go语言基础之递归实现数字累加
    go语言基础之递归函数的调用流程
    go语言基础之普通函数的调用流程
    maven install 打包 报错 Cannot run program "gpg.exe": CreateProcess error
    ELK&H3c监控篇
    机房监控中的网络设备监控到底是怎样的?
  • 原文地址:https://www.cnblogs.com/NEWHOM/p/6785492.html
Copyright © 2011-2022 走看看