느림보 개발
2. Model2 방식을 사용한 MVC패턴 - 가상주소 매핑 및 페이지 이동 본문
1. 가상주소 매핑
BoardController
System.out.println("\n 2. 가상주소 매핑 -시작 ");
//2. 가상주소 매핑 -----------------------------------------------
Actionforward forward = null; // 초기화
if(commands.equals("/BoardWrite.bo")){
// 글쓰기 페이지 보여주기 (DB정보 필요 X)
// view 페이지로 바로 이동
forward = new ActionForward();
forward.setPath("./board/writeForm.jsp"); // 어디로 갈거고
forward.setRedirect(false); // 어떤 방식으로 갈건지
}
//2. 가상주소 매핑 -----------------------------------------------
System.out.println("\n 2. 가상주소 매핑 -끝 ");
ActionForward
- 페이지 이동을 위한 정보를 저장하는 객체 = 통행권
- isRedirect 가 true - sendRedirect() 방식으로, false - forward() 방식으로 이동
public class ActionForward {
private String path; // 이동할 주소
private boolean isRedirect; // 이동할 방식
//getter,setter 생략
}
2. 가상 주소 페이지 이동
BoardController
- forward의 이동 정보가 있을 때
- 이동방식이 true - sendRedirect() 방식일 경우 → response 참조변수를 사용하여 세팅한 path를 가지고 redirect 방식으로 이동
- 이동방식이 false - forward방식일 경우 → RequestDispatcher를 생성하여 forward.getPath에 세팅된 주소로 req, res 를 가지고 이동
- RequestDispatcher의 forward 메서드는 대상 자원으로 제어권을 넘기는 역할을 한다.
//3. 가상주소 페이지 이동 -----------------------------------------------
if(forward != null) {
if(forward.isRedirect()) {
response.sendRedirect(forward.getPath());
} else {
RequestDispatcher dis = request.getRequestDispatcher(forward.getPath());
dis.forward(request,response);
}
}
writeForm.jsp
-/WebContent/board/ 생성
- MVC 패턴에서는 주소창에 .jsp가 뜨지 않도록 구현! → 모델, 뷰, 컨트롤러 분리
- 비지니스 로직은 Action 페이지에서 처리할 예정
<fieldset>
<form action="./BoardWriteAction.bo" method="post">
글쓴이 : <input type="text" name="name"><br>
비밀번호 : <input type="password" name="pw"><br>
제목 : <input type="text" name="subject"><br>
내용 : <input type="textarea" name="content"><br>
<input type="submit" value="글쓰기">
</form>
</fieldset>
실행
더보기
참고
RequestDispatcher 에 관한 글 https://dololak.tistory.com/502
'코드 정리 > JSP' 카테고리의 다른 글
1. Model2 방식을 사용한 MVC패턴 - 가상주소 계산 (0) | 2023.01.19 |
---|
Comments