Struts2-耦合方式和非耦合方式获取WEB资源

Struts2-耦合方式和非耦合方式获取WEB资源


通过ActionContext进行获取

package com.xieth.struts2.action;

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;

public class TestActionContextAction {

    public String execute(){

        ActionContext actionContext = ActionContext.getContext();

        // 获取Application
        Map<String, Object> applicationMap = actionContext.getApplication();
        applicationMap.put("applicatonKey", "applicationValue");
        System.out.println(applicationMap.get("date"));
        // 获取Session
        Map<String, Object> sessionMap = actionContext.getSession();
        sessionMap.put("sessionKey", "sessionValue");

        // 获取Request
        Map<String, Object> requestMap = (Map<String, Object>) actionContext.get("request");
        requestMap.put("requestKey", "requestValue");

        // 获取请求参数对应的MAP
        Map<String, Object> paramterMap = actionContext.getParameters();
        System.out.println(((String[])paramterMap.get("name"))[0]);

        // 这个 Map 只可以读 不可以写入数据 !!
        paramterMap.put("age", 21);

        return "success";
    }

}

实现XxxAware接口

package com.xieth.struts2.action;

import java.util.Map;

import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.ParameterAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;

public class TestAwareAction implements ApplicationAware, SessionAware, RequestAware, ParameterAware{

    private Map<String, Object> applicationMap = null; 
    private Map<String, Object> sessionMap = null; 
    private Map<String, Object> requestMap = null; 
    private Map<String, Object> parameterMap = null; 

    public String execute(){
        //1. application
        applicationMap.put("applicationKey2", "applicationKey2Value");
        System.out.println(applicationMap.get("date"));

        //2. session

        //3. request

        //4. parameter

        return "success";
    }

    @Override
    public void setApplication(Map<String, Object> applicationMap) {
        this.applicationMap = applicationMap;
    }

    @Override
    public void setSession(Map<String, Object> sessionMap) {
        this.sessionMap = sessionMap;
    }

    @Override
    public void setParameters(Map<String, String[]> parameterMap) {
        this.parameterMap = this.parameterMap;
    }

    @Override
    public void setRequest(Map<String, Object> requestMap) {
        this.requestMap = requestMap;
    }

}

通过ServletActionContext进行获取

package com.xieth.struts2.action;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.struts2.ServletActionContext;

/**
 * 耦合的方式获取WEB资源
 * @author YR
 *
 */
public class TestServletActionContextAction {

    public String execute(){

        HttpServletRequest request = ServletActionContext.getRequest();

        HttpSession session = request.getSession();

        ServletContext servletContext = ServletActionContext.getServletContext();

        System.out.println("execute...");

        return "success";
    }

}

通过实现ServletXxxAware接口

package com.xieth.struts2.action;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.util.ServletContextAware;

public class TestServletAwareAction 
        implements ServletRequestAware, ServletContextAware, ServletResponseAware{

    private ServletContext servletContext;

    public String execute(){

        System.out.println(servletContext);

        return "success";
    }

    @Override
    public void setServletRequest(HttpServletRequest request) {
        System.out.println(request);
    }

    @Override
    public void setServletContext(ServletContext context) {
        System.out.println(context);
        servletContext = context;
    }

    @Override
    public void setServletResponse(HttpServletResponse response) {
        System.out.println(response);
    }


}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值