Struts2--获取ServletAPI的方式

当我们在使用Struts2的时候,在Action类中要怎么获取我们所需要的ServletApi呢,比如常用的request对象,response对象等,下面介绍三种接口对象的获取的方式

  1. 通过我们的ActionContext来获取

    ActionContext,把它理解为一个装数据的容器,每次创建Action的时候,同时都会创建一个ActionContext,它用来保存Action执行过程中用到的数据
    通过ActionContext的方式也有两种获取对象的方式

    方法一:当需要传输sesson的时候就可以使用这种方式来存储,维护一个map集合

    Map<String, Object> session = ActionContext.getContext().getSession();
    session.put("msg", null);
  方法二:
    HttpServletRequest request =(HttpServletRequest)ActionContext.getContext().get("request");
    HttpServletResponse response = (HttpServletResponse)ActionContext.getContext().get(StrutsStatics.HTTP_RESPONSE);
  1. 通过实现xxAware接口并实现里面的抽象方法
    public class APIAction3 extends ActionSupport implements ServletRequestAware,ServletResponseAware,ServletContextAware{


        private HttpServletRequest request;
        @Override
        public void setServletRequest(HttpServletRequest request) {
            this.request = request;
        }


        private ServletContext context;
        @Override
        public void setServletContext(ServletContext context) {
            this.context = context;
        }


        private HttpServletResponse response;
        @Override
        public void setServletResponse(HttpServletResponse response) {
            this.response = response;
        }
    }

这里我就直接上代码了,类直接实现了三个接口,然后实现方法中可以直接返回我们想要的对象

  1. 使用ServletActionContext来直接获取
    HttpServletRequest request = ServletActionContext.getRequest();
    HttpServletResponse response = ServletActionContext.getResponse();

上面的三种方式各有各的优点:比如说当我们只需要将结果值保存起来并进行传输的话,那我们就可以直接使用第一种Map存储的方式来操作,那当我们需要操作对象的时候就可以使用第三种方式

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值