03.업/04.스트럿츠22011. 10. 31. 16:39

[출처] http://monkeyddubi.blog.me/112385765 

* ServletContext, HttpServletRequest, HttpServletResponse 등의 서블릿 객체에 대한 직접 접근이 필요하거나
Parameter 맵, Request맵, Sesseion맵, Application 맵 등이 필요할 때 사용

*Parameter 맵은 요청 파라미터들의 이름과 값을 저장한 맵,
 Request 맵은 HttpServletRequest의 attribute 들을 저장한 맵,
 Session 맵은 HttpSession의 attribute 들을 저장한 맵
 Application 맵은 ServletContext의 attribute 들을 저장한 맵

예를 들어 세션에 저장한 오브젝트를 꺼내고 싶을 때, HttpSession객체가 필요없다.
세션 맵에 세션 attribute 들이 키와 값으로 저장되어 있다.

*액션이 servletConfig 인터셉터로부터 서블릿 객체나 맵을 주입받기 위해서는 각각의 Aware인터페이스를 구현해야 한다.
-ServletContextAware : ServletContext 객체를 받을 수 있다.
-ServletRequestAware : HttpServletRequest 객체를 받을 수 있다.
-ServletResponseAware : HttpServletResponse 객체를 받을 수 있다.
-ParameterAware :파라미터 맵을 받을 수 있다.
-RequestAware : Request 맵을 받을 수 있다.
-SessionAware : Session 맵을 받을 수 이싿.
-ApplicationAware : Application 맵을 받을 수 있다.

public class ServletAwareAction extends ActionSupport Implements ServletRequestAware, SessionAware
{
        HttpServletRequest request;
        Map session;

        public String execute() throws Exception
       {
            // request uri를 구한다.
            String requestURI = request.getRequestURI();

           //세션의 user객체를 얻는다.
           User user = (User)session.get("user");

           //비즈니스 로직

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

        @Override
        public void setSssion(Map session)
       {
             this.session = session;
        }

}

'03.업 > 04.스트럿츠2' 카테고리의 다른 글

플레임웍이 제공하는 인터셉터3  (0) 2011.10.31
Struts 2 인터셉터(Interceptor) - servletConfig 예제  (0) 2011.10.31
struts 2 - Interceptor  (0) 2011.10.31
ActionSupport 클래스  (0) 2011.10.31
[인터셉터]  (0) 2011.09.29
Posted by 봄날의차