美文网首页
Struts2--获取ServletAPI的方式

Struts2--获取ServletAPI的方式

作者: flyingzh | 来源:发表于2017-07-24 17:36 被阅读0次

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

    1.通过我们的ActionContext来获取

    ActionContext,把它理解为一个装数据的容器,每次创建Action的时候,同时都会创建一个ActionContext,它用来保存Action执行过程中用到的数据

    通过ActionContext的方式也有两种获取对象的方式

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

    Map session = ActionContext.getContext().getSession();session.put("msg", null);

    方法二:

    HttpServletRequest request =(HttpServletRequest)ActionContext.getContext().get("request");HttpServletResponse response = (HttpServletResponse)ActionContext.getContext().get(StrutsStatics.HTTP_RESPONSE);

    2.通过实现xxAware接口并实现里面的抽象方法

    public class APIAction3 extends ActionSupport implements ServletRequestAware,ServletResponseAware,ServletContextAware{

    private HttpServletRequest request;

    @Overridepublic void setServletRequest(HttpServletRequest request) {

                   this.request = request;

    }

    private ServletContext context;

    @Overridepublic void setServletContext(ServletContext context) {

                       this.context = context;

    }

    private HttpServletResponse response;

    @Overridepublic void setServletResponse(

    HttpServletResponse response) {

                      this.response = response;

    }

    }

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

    3.使用ServletActionContext来直接获取

    HttpServletRequest request = ServletActionContext.getRequest();

    HttpServletResponse response = ServletActionContext.getResponse();

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

    相关文章

      网友评论

          本文标题:Struts2--获取ServletAPI的方式

          本文链接:https://www.haomeiwen.com/subject/khnbkxtx.html