2022. 2. 23. 23:58ㆍ비즈니스 탐색/개발
# 모든 액션을 만들 때 기본적으로 들어가는 것.
package test.action;
import com.opensymphony.xwork2.Action;
public class LoginProAction implements Action{
public String execute() throws Exception {
return SUCCESS;
}
}
(중요) servletConfig
기존에 mvc패턴에서 쓰던 서블릿(realPath, request set Attribute, session 등) 을 넣어주는 작업을 하는 것으로
struts2는 Servlet API를 사용하지 않으므로 특별히 ServletContext, HttpServletRequest, HttpServletResponse등의 서블릿 객체에 접근을 하기 위해서 또는 Parameter Map(요청파라미터의 이름, 값을 저장한 맵), Request Map(HttpServletRequest의 attribute의 이름, 값을 저장한 맵), Session Map(HttpSession Attribute의 이름, 값을 저장한 맵), Application Map(ServletContext의 Attribute의 이름, 값 저장) 등이 필요한 경우 servletConfig Interceptor를 이용하면 된다.
이러한 Map에 접근을 하기 위해서는 적절한 Map을 가져다 쓰면 되는데…
예를들어 세션에 있는 attribute에 접근을 원한다고 HttpSession 객체를 만들어 attribute에 접근할 필요 없이 직접 Session Map에 접근해서 원하는 속성을 가져다 쓰면 된다는 뜻이다.
Action이 servletConfig 인터셉터로부터 서블릿 객체나 Map을 주입받기 위해서는 각각의 Aware인터페이스를 구현해야 한다.
servletConfig 예시
# form.jsp 생성
# struct.xml 액션 추가
<action name="loginPro" class="test.action.LoginProAction">
<interceptor-ref name="servletConfig" />
<result>/0907/loginPro.jsp</result>
</action>
<interceptor-ref name="servletConfig" />
sevletConfig가 하는 작업은 7개의 데이터를 넣어주는 것!!
(1) ServletContextAware : ServletContext 객체를 받을 수 있다.
(2) ★(중요) ServletRequestAware : HttpServeltRequest 객체를 받을 수 있다. : jstl에서 넣어주던 request.이것을 넣으면 mvc패턴에서 쓰던 것처럼 사용할 수 있다.
(3) ServletResponseAware : HttpServeltResponse 객체를 받을 수 있다.
(4) ParameterAware : Parameter Map을 받을 수 있다. : 파라미터 맵. 전달받은 파라미터를 맵으로 바로 넣어주는 것으로 잘 안쓰인다. 전달받은 것은 DTO로 넣기 때문.
(5) RequestAware : Request Map을 받을 수 있다.
(6) SessionAware : Session Map을 받을 수 있다.
(7) ApplicationAware : Application Map을 받을 수 있다.
# LoginProAction 생성
# loginPro.jsp 생성
# form.jsp 실행
'비즈니스 탐색 > 개발' 카테고리의 다른 글
[준비] 프로그램 설치 Pycharm Professional / JetBrains / aws가입 (0) | 2022.05.22 |
---|---|
[오류/에러] HTTP Status 405 - Request method 'POST' not supported (0) | 2022.02.24 |
[spring/framework] 스프링, 파일업로드 한 개일 때와 다수의 파일 업로드 시키는 방법에 대해서! (0) | 2022.02.23 |
[spring/framework] Action 총 수행 시간을 인터셉터로 구현 + 수 입력이 되지 않을경우. (0) | 2022.02.23 |
[struts/framework] 인터셉터 개요 및 사용자 입력값 처리 (0) | 2022.02.23 |