struts2的servlet的API的三种方式

Servlet的API的访问.
Servlet的API的访问:(三种方式)

1.完全解耦合的方式:(ActionContext)

ActionContext的方法:
    * Map<String,Object> getParameters();   ---接收参数.

    * put(String key,Object value);         ---向request域中存数据.
    * Map<String,Object> getSession();      ---获得session的Map.
    * Map<String,Object> getApplication();  ---获得application的Map.
    // 1.接收表单的数据:
    ActionContext actionContext = ActionContext.getContext();
    Map<String,Object> map = actionContext.getParameters();
    String[] names = (String[]) map.get("name");
    System.out.println(names[0]);
    String[] sexs = (String[]) map.get("sex");
    System.out.println(sexs[0]);

    // 2.向域中存数据:
    // 2.1向request域中存值:
    actionContext.put("reqName", "美美");
    // 2.2向session域中存值:
    actionContext.getSession().put("sessName", "标哥");
    // 2.3向application域中存值:
    actionContext.getApplication().put("appName", "大标哥");

2.使用接口注入的方式:

    实现接口的方式:
    * ServletRequestAware:
    * ServletContextAware:
    * ServletResponseAware:
public class RequestAction2 extends ActionSupport implements ServletRequestAware,ServletContextAware{

    private HttpServletRequest request;
    private ServletContext context;

    @Override
    public String execute() throws Exception {
        // 接收参数:
        String name = request.getParameter("name");
        String sex = request.getParameter("sex");
        System.out.println(name);
        System.out.println(sex);
        // 向域中保存数据:
        request.setAttribute("reqName", "凤姐");
        request.getSession().setAttribute("sessName", "杜宏");
        context.setAttribute("appName", "芙蓉");
        return SUCCESS;
    }

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

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

3.使用类中静态方法的方式:(耦合)

ServletActionContext:
* getRequest();
* getServletContext();
* getResponse();
@Override
    public String execute() throws Exception {
        // 接收参数:
        HttpServletRequest req = ServletActionContext.getRequest();
        String name  = req.getParameter("name");
        String sex  = req.getParameter("sex");
        System.out.println(name);
        System.out.println(sex);
        // 向域中保存数据:
        req.setAttribute("reqName", "天一");
        req.getSession().setAttribute("sessName", "冠希");
        ServletActionContext.getServletContext().setAttribute("appName", "冰冰");
        return super.execute();
    }

比较三种方式:
最好:第一种完全解耦合方式.
最熟练:第三种方式.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值