struts中数据处理的几种方式

处理数据的三个步骤

1.请求数据封装
2.调用service处理业务逻辑,拿到结果数据
3.数据保存到域中

方式一 、通过ServletApi

 //直接拿到servletApi,执行操作
        HttpServletRequest request = ServletActionContext.getRequest();
        HttpSession session = request.getSession();
        ServletContext servletContext = ServletActionContext.getServletContext();

        //保存
        request.setAttribute("request_data","request_data");
        session.setAttribute("session_data","session_data");
        servletContext.setAttribute("context_data","context_data");

方式二、 通过Action类

//推荐:解藕的方式实现对数据的操作
        ActionContext ac = ActionContext.getContext();
        //拿到struts对HttpServletRequest进行了封装,封装为一个map
        //拿到表示request对象map
        Map request = ac.getContextMap();
        //拿到表示Session对象map
        Map session = ac.getSession();
        //拿到表示servletContext对象map
        Map application = ac.getApplication();

        //数据
        request.put("request_data","request_data_request_data ");
        session.put("session_data","session_data_request_data ");
        application.put("context_data","context_data_request_data ");

方式三、实现接口的方法

package action;

import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;

import java.util.Map;

/**
 * 数据处理 方式三,实现接口的方法
 */
public class DataAction2 extends ActionSupport implements RequestAware, SessionAware, ApplicationAware {
    private Map request;
    private Map session;
    private Map application;

    //struts运行的时候,会把代表request的map对象注入
    public void setRequest(Map request) {
        this.request = request;
    }

    public void setSession(Map session) {
        this.session = session;

    }

    public void setApplication(Map application) {
        this.application = application;
    }

    @Override
    public String execute() throws Exception {
        request.put("request_data","request_data_request_Aware ");
        session.put("session_data","session_data_request_Aware ");
        application.put("context_data","context_data_request_Aware ");
        return SUCCESS;
    }
}

你可能感兴趣的:(struts中数据处理的几种方式)