zoukankan      html  css  js  c++  java
  • 如何在Action类中访问Servlet原生的API

    1.解耦的方式(使用Map对象代替Servlet原生的API)

      >实现XxxAware接口,得到对应Map对象

        ApplicationAware;RequestAware;SessionAware;ParameterAware;

      >通过ActionContext对象获取对应的Map对象(actionContext实质上是一个Map)(里面没有response)

            // ctx实质上就是一个Map对象。是Action的上下文,可以获取到当前Action需要的一切信息
            ActionContext ctx = ActionContext.getContext();
            Map<String, Object> application = ctx.getApplication();
            //获取到的这个session和其他的Map有点区别:
            //它实际是SessionMap类型,可以对其强转,其中有一个真正的session对象,并且有invalide()方法可以使session失效
            Map<String, Object> session = ctx.getSession();
            // 没有getRequest方法,只能这样获取
            Map<String, Object> request = (Map<String, Object>) ctx.get("request");
            // actionContext里面没有response,下面这种方式获取不到
            // Map<String, Object> response = (Map<String, Object>)ctx.get("response");
    
            // params其中的Object实质上是String[],需要强转。(注意:只能读,向里面写不起作用)
            Map<String, Object> params = ctx.getParameters();

      >以上两种方式的选用建议

        第一种,一次获取,整个Action方法中都可以直接使用;而第二种,不同action方法需分别获取。

    2.耦合的方式(真正的Servlet原生的API)

      >实现ServletXxxAware接口,得到对应的原生API(通过request来获取session和response)

            ServletRequestAware;ServletResponseAware;ServletContextAware;

      >通过ServletActionContext对象的静态方法得到原生API(通过request来获取session和response)

            ServletContext sctx = ServletActionContext.getServletContext();//和application是一个对象
            HttpServletResponse resp = ServletActionContext.getResponse();//获取response
            HttpServletRequest req = ServletActionContext.getRequest();//获取request
            HttpSession sess = ServletActionContext.getRequest().getSession();//获取session
            Map<String, String[]> paramsMap = ServletActionContext.getRequest().getParameterMap();//获取参数的Map
            ValueStack valueStack = ServletActionContext.getValueStack(req);//获取值栈
  • 相关阅读:
    SpringBoot(十):SpringBoot的简单事务管理
    SpringBoot(九):SpringBoot集成Mybatis
    独立式智能扫码插座
    STC-51开发板-单片机控制数码管&按键&点阵综合操作
    单片机定时器与数码管静态显示
    半导体器件
    电路模型与规律
    单片机-引脚并行口结构讲解
    单片机-基础知识,存储原理,引脚简介———(第一个小程序)
    C语言-综合知识点
  • 原文地址:https://www.cnblogs.com/feifeiyun/p/6636806.html
Copyright © 2011-2022 走看看