본문 바로가기

JSP & WEB & Ajax

struts2 Action에서 HttpServletRequest, HttpServletResponse 사용방법


X-internet와 struts2연동시 x-internet 벤더마다 filter를 사용한다던지 하여 나름데로의 통신방식이 있다. 따라서, Client의 요청을 struts2 기본설정으로 받아들이지 못하기 때문에 HttpServletRequest와 HttpServletResponse를 직접 핸들링 해줘야 한다.

 

방법은 2가지..

 

1) ActionSupport를 extends하는 방법과

2) ServletRequestAware, ServletResponseAware를 implements하고

    servlet-config interceptor를 설정해주는 방법이 있다.

 

첫번째 방법은, ActionSupport를 extends하는 방법

#XinternetAction .java

public class XinternetAction extends ActionSupport{

 

    private HttpServletRequest request ;

    private HttpServletResponse response;

 

    public String execute(){

        request = ServletActionContext.getRequest();

        response = ServletActionContext.getResponse();

        //use request & response

        return super.SUCCESS;

    }

}

두번째 방법은, ServletRequestAware, ServletResponseAware를 implements하고

    servlet-config interceptor를 설정해주는 방법

 

#XinternetAction .java

public class XinternetAction implements ServletRequestAware, ServletResponseAware {


    private HttpServletRequest request;
    private HttpServletResponse response;


    public String execute(){
        //use request & response

        return Action.SUCCESS;
    }
   
    // implements methods in ServletRequestAware
 public void setServletRequest(HttpServletRequest request) {
  this.request = request;
 }

 // implements methods in ServletResponseAware
 public void setServletResponse(HttpServletResponse response) {
  this.response = response;
 }
}

# struts.xml

<package name="default" extends="struts-default">
     <interceptors>
     <interceptor-stack name="defaultStack">
        <interceptor-ref name="timer"/>
        <interceptor-ref name="logger"/>
        <interceptor-ref name="servlet-config"/>
     </interceptor-stack>
  </interceptors>
</package>

 

'JSP & WEB & Ajax' 카테고리의 다른 글

유용한 자바스크립트 함수  (0) 2009.09.21
Session 가져오는 법 - struts2  (0) 2009.09.16
Html 코딩 #01  (0) 2009.08.03
jQuery로 작업하기 Part 2  (0) 2009.06.16
jQuery로 작업하기 Part 1  (0) 2009.06.16