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;
        }
    }
  • 相关阅读:
    第 15 章 标签页和工具提示插件
    第 14 章 下拉菜单和滚动监听插件
    第 13 章 模态框插件
    第 12 章 列表组面板和嵌入组件
    第 11 章 进度条媒体对象和 Well 组件
    第 10 章 巨幕页头缩略图和警告框组件
    第 9 章 路径分页标签和徽章组件
    lock()与lockInterruptibly()的区别
    MySQL中Innodb的聚簇索引和非聚簇索引
    MySQL使用可重复读作为默认隔离级别的原因
  • 原文地址:https://www.cnblogs.com/NEWHOM/p/6785492.html
Copyright © 2011-2022 走看看