[출처] 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 |