Jsp -MVC2- Action,ActionForward

2020. 8. 10. 19:51JSP-MVC model2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package action;
 
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import vo.ActionForward;
 
public interface Action {
    /*
     * XXXAction 클래스를 통해 각 요청에 대한 작업을 처리하기 위해서
     * 클라이언트로부터의 요청이 들어올 때 서로 다른 클래스들에 대한 요청이므로
     * 각 Action 클래스들이 구현해야하는 execute()메서드를
     * 공통된 형태로 정의하기 위해 다형성을 활용할 수 있도록 Action 인터페이스 설계
     * - 각 요청을 받아들일 execute() 메서드를 통해 요청(request)과 응답(response) 객체를
     * 전달받고, 포워딩 정보를 저장하는 ActionForward 객체를 리턴하도록 정의
     * -> 각 XXXAction 클래스에서는 Action 인터페이스를 상속받아 구현하도록 강제
     */
    
    ActionForward execute(HttpServletRequest request,HttpServletResponse response) throws Exception;
    
}
//---------------------------------------------------------------------------------------------
 
 
package vo;
 
public class ActionForward {
    /*
     * 서블릿에서 클라이언트로부터 요청을 전달받아 처리한 후
     * 지정한 View 페이지로 포워딩할 때
     * 포워딩 할 View 페이지의 주소(URL)와 포워딩 방식(Redirect  or  Dispatch) 을 
     * 공통으로 다루기 위한 클래스
     */
    
    private String path;//포워딩 주소 저장할 변수
    private boolean isRedirect;//포워딩 방식 저장할 변수
    //true : Redirect 방식, false : Dispatch 방식
    
    
    public String getPath() {
        return path;
    }
    public void setPath(String path) {
        this.path = path;
    }
    public boolean isRedirect() {
        return isRedirect;
    }
    public void setRedirect(boolean isRedirect) {
        this.isRedirect = isRedirect;
    }
    
    
}
 
cs

 

포워딩 방식을 지정해 주기 위한 구별을 지어주기 위한 마커 인터페이스(Marker Interface)인 Action과 포워딩 방식과 주소를 저장하는 변수를 저장하기 위한 클래스인 ActionForward를 게시판 DB작업인지 회원정보 DB작업인지 등등 작업의 종류와 각각의 포워딩 방식을 지정해 주어 FrontController에서 식별을 편하게 선언해 준다. 그리고 execute(request, response)를 선언해주어서 강제성을 부여해 준다. isRedirect를 boolean 타입으로 선언해 준 것은 true 일 때는 response.sendRedirect를 선언해 주고, false 일 때는 Dispatch 방식으로 포워딩 방식을 지정해 준다. false 일 때는 따로 선언을 해주지 않아도 되는 것이 boolean의 기본값이 false이기 때문에 따로 선언을 해주지 않아도 문제는 없다. 하지만 식별을 위해 지정해주는 것이 좋아 보인다.

'JSP-MVC model2' 카테고리의 다른 글

Jsp-MVC2-JdbcUtil  (0) 2020.08.10
Jsp-MVC2 -DAO  (0) 2020.08.10
Jsp-MVC2-FrontController  (0) 2020.08.10
Jsp-MVC2,Connection Pool  (0) 2020.08.10
Jsp - MVC2, path 얻기,web.xml  (0) 2020.08.04