Struts2 학습(5) 웹 요소 접근 요약

8863 단어 스트럿츠2.0
struts2가 웹 요소에 접근하는 방법은 4가지(request, session, application)가 있는데 이 4가지 방법을 소개합니다. 처음 두 개는 Map 유형 요청, 세션, 응용 프로그램을 얻기 위한 것이고 후자 두 개는 실제 유형인 HttpServletRequest, HttpSession 및 ServletContext에 대한 참조입니다. 그 중 지도 유형의 두 번째 방법이 가장 일반적으로 사용되며 나머지 세 가지 방법은 알려져 있으면 일반적으로 사용되지 않습니다.

첫 번째 방법:


struts2 컨테이너에 따라 다르며 자체 값을 사용합니다.
package com.bjsxt.struts2.user.action;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction1 extends ActionSupport {
    private Map request;
    private Map session;
    private Map application;

    public LoginAction1() {
        request = (Map)ActionContext.getContext().get("request");
        session = ActionContext.getContext().getSession();
        application = ActionContext.getContext().getApplication();
    }

    public String execute() {
        request.put("r1", "r1");
        session.put("s1", "s1");
        application.put("a1", "a1");
        return SUCCESS; 
    }
}

두 번째 방법:


DI(Dependency Injection) IOC(inversion of control)라는 개념은 자동으로 얻기 위해 사용되며 직접 초기화할 필요 없이 변명만 상속하면 요소가 자동으로 초기화되어 할당됩니다.
package com.bjsxt.struts2.user.action;
import java.util.Map;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction2 extends ActionSupport implements RequestAware,SessionAware, ApplicationAware {

    private Map<String, Object> request;
    private Map<String, Object> session;
    private Map<String, Object> application;

    //DI dependency injection
    //IoC inverse of control
    public String execute() {
        request.put("r1", "r1");
        session.put("s1", "s1");
        application.put("a1", "a1");
        return SUCCESS; 
    }

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

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

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


}

세 번째 방법:


package com.bjsxt.struts2.user.action;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction3 extends ActionSupport {

    private HttpServletRequest request;
    private HttpSession session;
    private ServletContext application;

    public LoginAction3() {
        request = ServletActionContext.getRequest();
        session = request.getSession();
        application = session.getServletContext();
    }

    public String execute() {
        request.setAttribute("r1", "r1");
        session.setAttribute("s1", "s1");
        application.setAttribute("a1", "a1");
        return SUCCESS; 
    }

}

네 번째 방법:


package com.bjsxt.struts2.user.action;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.interceptor.ServletRequestAware;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction4 extends ActionSupport implements ServletRequestAware {

    private HttpServletRequest request;
    private HttpSession session;
    private ServletContext application;

    public String execute() {
        request.setAttribute("r1", "r1");
        session.setAttribute("s1", "s1");
        application.setAttribute("a1", "a1");
        return SUCCESS; 
    }

    @Override
    public void setServletRequest(HttpServletRequest request) {
        this.request = request;
        this.session = request.getSession();
        this.application = session.getServletContext();
    }

}
물론 이러한 방법을 통해 웹 요소를 얻으려면 기본적으로 세션만 사용하며 struts2 고유의 특성인 속성을 통해 요청 요청의 매개변수를 자동으로 수신할 수 있다는 것은 모두 알고 있습니다.

좋은 웹페이지 즐겨찾기