【4】Struts2访问Servlet的API

 

1、完全解耦合的方式实现ServletAPI的访问

public class RequestDemo1Action extends ActionSupport{

 

    @Override

    public String execute() throws Exception {

        // 接收参数:

        /**

         * 解耦合的方式通过ActionContext中的方法实现:

         * * Map<String,Object> getParameters();

         * * Map<String,Object> get(String key);

         * * Map<String,Object> getSession();

         * * Map<String,Object> getApplication();

         * * void put(Stirng name,Object value);

         * * void setSession(Map<String,Object> session);

         * * void setApplication(Map<String,Object> application)

         */

        // 接收参数:

        ActionContext actionContext = ActionContext.getContext();

        // 接收:

        Map<String, Object> map = actionContext.getParameters();

        for (String key : map.keySet()) {

            String[] arrs = (String[]) map.get(key);

            System.out.println(key+"    "+Arrays.toString(arrs));

           

        }

        // 向域对象中存数据:

        // request域中存入数据:

        actionContext.put("reqName""r郝宝强");// 相当于request.setAttribute("","")

        // session域中存入数据:

        actionContext.getSession().put("sessName""s郝蓉");

        // application域中存入数据:

        actionContext.getApplication().put("appName""a郝喆");

        return SUCCESS;

    }

}

l  接收参数:通过ActionContext中的方法实现:

n  创建ActionContext对象:

                            ActionContext  actionContext=  ActionContext.getContext();

n  获取表单中的所有数据:

                   actionContext.getParameters();

n  向request域中存入数据:

                   actionContext.put(“reqName” , “小张”);

n  向Session域中存入数据:

                            actionContext.getSession().put(“sessName” , “小王”);

n  向application域中存入数据:

                   actionContext.getApplication().put(“appName” , “小三”);

 

2、通过实现特定接口的方式完成Servlet的API的访问

public class RequestDemo2Action extends ActionSupport implements ServletRequestware{

 

    private HttpServletRequest request ;

    private ServletContext application;

 

    @Override

    public String execute() throws Exception {

        // 接收参数:需要使用request对象。

        Map<String, String[]> parameterMap = request.getParameterMap();

        for (String key : parameterMap.keySet()) {

            String[] value = parameterMap.get(key);

            System.out.println(key+"   "+Arrays.toString(value));

        }

       

        // request域中存值:

        request.setAttribute("reqName""r郝天一");

        // session域中存值:

        request.getSession().setAttribute("sessName""s郝思聪");

        // application域中存值:

        application.setAttribute("appName""a郝冠希");

        return SUCCESS;

    }

 

    @Override

    public void setServletRequest(HttpServletRequest request) {

        this.request = request;

    }

 

    @Override

    public void setServletContext(ServletContext application) {

        this.application = application;

    }

}

 

3、通过ServletActionContext方法实现ServletAPI的访问

public class RequestDemo3Action extends ActionSupport{

 

    @Override

    public String execute() throws Exception {

        // 接收参数:

        HttpServletRequest request = ServletActionContext.getRequest();

        Map<String, String[]> parameterMap = request.getParameterMap();

        for (String key : parameterMap.keySet()) {

            String[] value = parameterMap.get(key);

            System.out.println(key+"    "+Arrays.toString(value));

        }

        // 向域中存值:

        request.setAttribute("reqName""r郝如花");

        request.getSession().setAttribute("sessName""s郝凤");

        ServletActionContext.getServletContext().setAttribute("appName""a郝石榴");

        return super.execute();

    }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值